function setPermission($permission_name, $value) { $permission_id = Permissions::getPermissionId($permission_name); if (!isset($permission_id) || !$permission_id) { return false; } // delete permission ProjectUserPermissions::delete( array( '`user_id` = ? AND `project_id` = ? AND `permission_id` = ?', $this->getId(), 0, $permission_id )); // add if $value == 1 if ($value == 1) { $pup = new ProjectUserPermission(); $pup->setProjectId(0); $pup->setUserId($this->getId()); $pup->setPermissionId($permission_id); $pup->save(); } // if } // setPermission
/** * Clear permission by user * * @param User $user * @return boolean */ static function clearByUser(User $user) { // project_id 0 means permission outside any project like can manage projects ProjectUserPermissions::delete(array('`user_id` = ? AND `project_id` > 0', $user->getId())); return self::delete(array('`user_id` = ?', $user->getId())); }