phpgroupware-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Phpgroupware-cvs] [21020] New feature: Delete users ACL-cache as bulk o


From: Sigurd Nes
Subject: [Phpgroupware-cvs] [21020] New feature: Delete users ACL-cache as bulk operation / improvement : fetchmode 4686:4746
Date: Sun, 07 Feb 2010 10:42:50 +0000

Revision: 21020
          
http://svn.sv.gnu.org/viewvc/?view=rev&root=phpgroupware&revision=21020
Author:   sigurdne
Date:     2010-02-07 10:42:49 +0000 (Sun, 07 Feb 2010)
Log Message:
-----------
New feature: Delete users ACL-cache as bulk operation / improvement: fetchmode 
4686:4746

Modified Paths:
--------------
    people/sigurdne/modules/admin/trunk/inc/class.menu.inc.php
    people/sigurdne/modules/admin/trunk/inc/class.soaccess_history.inc.php
    people/sigurdne/modules/admin/trunk/inc/class.soapplications.inc.php
    people/sigurdne/modules/admin/trunk/inc/class.solog.inc.php
    people/sigurdne/modules/admin/trunk/inc/class.uiaccounts.inc.php

Modified: people/sigurdne/modules/admin/trunk/inc/class.menu.inc.php
===================================================================
--- people/sigurdne/modules/admin/trunk/inc/class.menu.inc.php  2010-02-07 
10:40:47 UTC (rev 21019)
+++ people/sigurdne/modules/admin/trunk/inc/class.menu.inc.php  2010-02-07 
10:42:49 UTC (rev 21020)
@@ -86,6 +86,15 @@
                                );
                        }
 
+                       if ( $GLOBALS['phpgw']->acl->check('run', 
phpgwapi_acl::READ, 'admin'))
+                       {
+                               $menus['admin']['clear_user_cache'] = array
+                               (
+                                       'text'  => lang('Clear user cache'),
+                                       'url'   => 
$GLOBALS['phpgw']->link('/index.php', array('menuaction' => 
'admin.uiaccounts.clear_user_cache') )
+                               );
+                       }
+
 //                     if (! $GLOBALS['phpgw']->acl->check('sync_account', 
PHPGW_ACL_READ, 'admin'))
                        if ( $GLOBALS['phpgw']->acl->check('run', 
phpgwapi_acl::READ, 'admin'))
                        {

Modified: people/sigurdne/modules/admin/trunk/inc/class.soaccess_history.inc.php
===================================================================
--- people/sigurdne/modules/admin/trunk/inc/class.soaccess_history.inc.php      
2010-02-07 10:40:47 UTC (rev 21019)
+++ people/sigurdne/modules/admin/trunk/inc/class.soaccess_history.inc.php      
2010-02-07 10:42:49 UTC (rev 21020)
@@ -52,10 +52,10 @@
                {
                        $where = $this->test_account_id($account_id);
 
-                       $this->db->query("SELECT COUNT(*) from phpgw_access_log 
$where", __LINE__, __FILE__);
+                       $this->db->query("SELECT COUNT(*) as cnt from 
phpgw_access_log $where", __LINE__, __FILE__);
                        $this->db->next_record();
 
-                       return $this->db->f(0);
+                       return $this->db->f('cnt');
                }
 
                function return_logged_out($account_id)
@@ -68,9 +68,9 @@
                        {
                                $where = 'WHERE lo !=0';
                        }
-                       $this->db->query("SELECT COUNT(*) FROM phpgw_access_log 
$where", __LINE__, __FILE__);
+                       $this->db->query("SELECT COUNT(*) as cnt FROM 
phpgw_access_log $where", __LINE__, __FILE__);
                        $this->db->next_record();
 
-                       return $this->db->f(0);
+                       return $this->db->f('cnt');
                }
        }

Modified: people/sigurdne/modules/admin/trunk/inc/class.soapplications.inc.php
===================================================================
--- people/sigurdne/modules/admin/trunk/inc/class.soapplications.inc.php        
2010-02-07 10:40:47 UTC (rev 21019)
+++ people/sigurdne/modules/admin/trunk/inc/class.soapplications.inc.php        
2010-02-07 10:42:49 UTC (rev 21020)
@@ -59,10 +59,10 @@
                        /* Yes, the sequence should work, but after a mass 
import in setup (new install)
                          it does not work on pg
                        */
-                       $sql = 'SELECT MAX(app_id) from phpgw_applications';
+                       $sql = 'SELECT MAX(app_id) as max_app_id from 
phpgw_applications';
                        $this->db->query($sql,__LINE__,__FILE__);
                        $this->db->next_record();
-                       $app_id = $this->db->f(0) + 1;
+                       $app_id = $this->db->f('max_app_id') + 1;
                        $sql = 'INSERT INTO phpgw_applications 
(app_id,app_name,app_enabled,app_order) VALUES('
                                . $app_id . ",'" . 
addslashes($data['n_app_name']) . "','"
                                . $data['n_app_status'] . "','" . 
$data['app_order'] . "')";
@@ -83,10 +83,10 @@
 
                function exists($app_name)
                {
-                       $this->db->query("SELECT COUNT(app_name) FROM 
phpgw_applications WHERE app_name='" . addslashes($app_name) . 
"'",__LINE__,__FILE__);
+                       $this->db->query("SELECT COUNT(app_name) as cnt FROM 
phpgw_applications WHERE app_name='" . addslashes($app_name) . 
"'",__LINE__,__FILE__);
                        $this->db->next_record();
 
-                       if ($this->db->f(0) != 0)
+                       if ($this->db->f('cnt') != 0)
                        {
                                return True;
                        }
@@ -95,9 +95,9 @@
 
                function app_order()
                {
-                       $this->db->query('SELECT (MAX(app_order)+1) FROM 
phpgw_applications',__LINE__,__FILE__);
+                       $this->db->query('SELECT (MAX(app_order)+1) as 
next_order FROM phpgw_applications',__LINE__,__FILE__);
                        $this->db->next_record();
-                       return $this->db->f(0);
+                       return $this->db->f('next_order');
                }
 
                function delete($app_name)

Modified: people/sigurdne/modules/admin/trunk/inc/class.solog.inc.php
===================================================================
--- people/sigurdne/modules/admin/trunk/inc/class.solog.inc.php 2010-02-07 
10:40:47 UTC (rev 21019)
+++ people/sigurdne/modules/admin/trunk/inc/class.solog.inc.php 2010-02-07 
10:42:49 UTC (rev 21020)
@@ -53,10 +53,10 @@
                {
                        $where = $this->test_account_id($account_id);
 
-                       $this->db->query("SELECT COUNT(*) FROM phpgw_log 
$where", __LINE__, __FILE__);
+                       $this->db->query("SELECT COUNT(*) as cnt FROM phpgw_log 
$where", __LINE__, __FILE__);
                        $this->db->next_record();
 
-                       return $this->db->f(0);
+                       return $this->db->f('cnt');
                }
                
                function purge_log($account_id)

Modified: people/sigurdne/modules/admin/trunk/inc/class.uiaccounts.inc.php
===================================================================
--- people/sigurdne/modules/admin/trunk/inc/class.uiaccounts.inc.php    
2010-02-07 10:40:47 UTC (rev 21019)
+++ people/sigurdne/modules/admin/trunk/inc/class.uiaccounts.inc.php    
2010-02-07 10:42:49 UTC (rev 21020)
@@ -53,7 +53,8 @@
                        'edit_user'             => true,
                        'edit_group'    => true,
                        'view_user'             => true,
-                       'sync_accounts_contacts'        => true
+                       'sync_accounts_contacts'        => true,
+                       'clear_user_cache'                      => true
                );
 
                /**
@@ -1297,4 +1298,22 @@
                        $GLOBALS['phpgw']->redirect_link('/admin/index.php');
                }
 
+               /**
+               * Clear ACL-cache for all users
+               *
+               * @return void
+               */
+
+               function clear_user_cache()
+               {
+                       if(     $GLOBALS['phpgw']->acl->check('run', 
phpgwapi_acl::READ, 'admin') )
+                       {
+                               $account_list = 
$GLOBALS['phpgw']->accounts->get_list('both', -1);
+                               foreach ( $account_list as  $id => $account)
+                               {
+                                       
$GLOBALS['phpgw']->acl->clear_user_cache($id);
+                               }
+                       }
+                       $GLOBALS['phpgw']->redirect_link('/admin/index.php');
+               }
        }





reply via email to

[Prev in Thread] Current Thread [Next in Thread]