diff --git a/module/group/model.php b/module/group/model.php index f83b825223..dac37e1dfc 100644 --- a/module/group/model.php +++ b/module/group/model.php @@ -364,16 +364,18 @@ class groupModel extends model $actions['actions'] = $dynamic; /* Update whitelist. */ - $users = $this->getUserPairs($groupID); - $users = array_keys($users); + $this->loadModel('personnel'); + $users = $this->getUserPairs($groupID); + $users = array_keys($users); + foreach($this->config->group->acl->objectTypes as $key => $objectType) { $oldAcls = isset($oldGroup->acl[$key]) ? $oldGroup->acl[$key] : array(); $newAcls = isset($actions[$key]) ? $actions[$key] : array(); $needRemoveAcls = array_diff($oldAcls, $newAcls); $needAddAcls = array_diff($newAcls, $oldAcls); - foreach($needAddAcls as $objectID) $this->loadModel('personnel')->updateWhitelist($users, $objectType, $objectID, 'whitelist', 'add', 'increase'); - foreach($needRemoveAcls as $objectID) $this->loadModel('personnel')->deleteWhitelist($users, $objectType, $objectID); + foreach($needAddAcls as $objectID) $this->personnel->updateWhitelist($users, $objectType, $objectID, 'whitelist', 'sync', 'increase'); + foreach($needRemoveAcls as $objectID) $this->personnel->deleteWhitelist($users, $objectType, $objectID); } diff --git a/module/personnel/model.php b/module/personnel/model.php index f53c8daad0..868544616a 100644 --- a/module/personnel/model.php +++ b/module/personnel/model.php @@ -749,6 +749,7 @@ class personnelModel extends model $this->dao->delete()->from(TABLE_ACL) ->where('objectID')->eq($objectID) ->andWhere('account')->in($users) + ->andWhere('source')->eq('sync') ->exec(); foreach($users as $account)