Exemple #1
0
 public function dropPermissions()
 {
     $modules = PHPWS_Core::getModules(true, true);
     if (empty($modules)) {
         return false;
     }
     foreach ($modules as $mod) {
         $permTable = Users_Permission::getPermissionTableName($mod);
         $db = new PHPWS_DB($permTable);
         if (!$db->isTable($permTable)) {
             continue;
         }
         $db->addWhere('group_id', $this->id);
         PHPWS_Error::logIfError($db->delete());
         $db = new PHPWS_DB('phpws_key_edit');
         $db->addWhere('group_id', $this->id);
         PHPWS_Error::logIfError($db->delete());
         $db = new PHPWS_DB('phpws_key_view');
         $db->addWhere('group_id', $this->id);
         PHPWS_Error::logIfError($db->delete());
     }
     return true;
 }
Exemple #2
0
 /**
  * Returns an associative list of all groups and their levels of permission
  * in reference to the key passed to it
  */
 public static function getPermissionGroups($key, $edit_rights = false)
 {
     if (empty($key) || !is_a($key, 'Key') || $key->isHomeKey() || empty($key->module) || $edit_rights && empty($key->edit_permission)) {
         return NULL;
     }
     $permTable = Users_Permission::getPermissionTableName($key->module);
     if (!PHPWS_DB::isTable($permTable)) {
         return PHPWS_Error::get(USER_ERR_PERM_FILE, 'users', __CLASS__ . '::' . __FUNCTION__);
     }
     $db = new PHPWS_DB('users_groups');
     $db->addColumn('users_groups.*');
     $db->addColumn("{$permTable}.permission_level");
     $db->addWhere('id', "{$permTable}.group_id");
     $db->addWhere("{$permTable}.permission_level", 0, '>');
     $test_db = new PHPWS_DB($permTable);
     if ($edit_rights) {
         if (!$test_db->isTableColumn($key->edit_permission)) {
             return PHPWS_Error::get(KEY_PERM_COLUMN_MISSING, 'core', 'Users_Permission::getRestrictedGroups', $key->edit_permission);
         }
         $db->addWhere($permTable . '.' . $key->edit_permission, 1);
     }
     $db->addOrder('name');
     $result = $db->select();
     if (empty($result) || PHPWS_Error::isError($result)) {
         return $result;
     }
     foreach ($result as $group) {
         if ($group['user_id']) {
             if ($group['permission_level'] == RESTRICTED_PERMISSION) {
                 $glist['restricted']['all'][] = $glist['restricted']['users'][] = $group;
             } else {
                 $glist['unrestricted']['users'][] = $glist['unrestricted']['all'][] = $group;
             }
             $glist['permitted']['users'][] = $group;
         } else {
             if ($group['permission_level'] == RESTRICTED_PERMISSION) {
                 $glist['restricted']['groups'][] = $glist['restricted']['all'][] = $group;
             } else {
                 $glist['unrestricted']['groups'][] = $glist['unrestricted']['all'][] = $group;
             }
             $glist['permitted']['groups'][] = $group;
         }
         $glist['permitted']['all'][] = $group;
     }
     return $glist;
 }