phpgroupware-cvs
[Top][All Lists]
Advanced

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

[Phpgroupware-cvs] [21009] Fix: Clean up ACL and cache when deleting gro


From: Sigurd Nes
Subject: [Phpgroupware-cvs] [21009] Fix: Clean up ACL and cache when deleting groups 4683:4684
Date: Sat, 30 Jan 2010 20:38:57 +0000

Revision: 21009
          
http://svn.sv.gnu.org/viewvc/?view=rev&root=phpgroupware&revision=21009
Author:   sigurdne
Date:     2010-01-30 20:38:56 +0000 (Sat, 30 Jan 2010)
Log Message:
-----------
Fix: Clean up ACL and cache when deleting groups 4683:4684

Modified Paths:
--------------
    people/sigurdne/modules/phpgwapi/trunk/inc/class.acl.inc.php

Modified: people/sigurdne/modules/phpgwapi/trunk/inc/class.acl.inc.php
===================================================================
--- people/sigurdne/modules/phpgwapi/trunk/inc/class.acl.inc.php        
2010-01-30 17:18:02 UTC (rev 21008)
+++ people/sigurdne/modules/phpgwapi/trunk/inc/class.acl.inc.php        
2010-01-30 20:38:56 UTC (rev 21009)
@@ -1006,7 +1006,7 @@
                                        $account_id = 
get_account_id($accountid, $this->_account_id);
                                        $cache_accountid[$accountid] = 
$account_id;
                                }
-                               $account_sel = " AND acl_account = 
{$account_id}";
+                               $account_sel = " AND (acl_account = 
{$account_id} OR acl_grantor = {$account_id})";
                        }
 
                        $app = $this->_db->db_addslashes($app);
@@ -1031,22 +1031,24 @@
                                . " WHERE location_id IN ({$location_filter}) 
$account_sel";
                        $this->_db->query($sql, __LINE__, __FILE__);
 
-                       $ret = !!$this->_db->num_rows();
+                       $ret = !!$this->_db->affected_rows();
 
                        if ( $ret )
                        {
-                               $location_id    = 
$GLOBALS['phpgw']->locations->get_id($app, $location);
-                               if($account_id)
+                               foreach ($locations as $location_id)
                                {
-                                       $this->_delete_cache($account_id, 
$location_id);
-                               }
-                               else
-                               {
-                                       $account_objects = 
$GLOBALS['phpgw']->accounts->get_list('both', -1, 'ASC', '', '', -1);
-                                       foreach($account_objects as $account)
+                                       if($account_id)
                                        {
-                                               
$this->_delete_cache($account->id, $location_id);
+                                               
$this->_delete_cache($account_id, $location_id);
                                        }
+                                       else
+                                       {
+                                               $account_objects = 
$GLOBALS['phpgw']->accounts->get_list('both', -1, 'ASC', '', '', -1);
+                                               foreach($account_objects as 
$account)
+                                               {
+                                                       
$this->_delete_cache($account->id, $location_id);
+                                               }
+                                       }
                                }
                        }
                        return $ret;





reply via email to

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