diff options
Diffstat (limited to 'app/Model')
-rw-r--r-- | app/Model/ProjectPermission.php | 24 | ||||
-rw-r--r-- | app/Model/User.php | 18 |
2 files changed, 22 insertions, 20 deletions
diff --git a/app/Model/ProjectPermission.php b/app/Model/ProjectPermission.php index 51c11735..9d339f4d 100644 --- a/app/Model/ProjectPermission.php +++ b/app/Model/ProjectPermission.php @@ -33,10 +33,6 @@ class ProjectPermission extends Base { $allowed_users = $this->getAllowedUsers($project_id); - if (empty($allowed_users)) { - $allowed_users = $this->user->getList(); - } - if ($prepend_unassigned) { $allowed_users = array(t('Unassigned')) + $allowed_users; } @@ -146,22 +142,10 @@ class ProjectPermission extends Base */ public function isUserAllowed($project_id, $user_id) { - // If there is nobody specified, everybody have access to the project - $nb_users = $this->db - ->table(self::TABLE) - ->eq('project_id', $project_id) - ->count(); - - if ($nb_users < 1) return true; - - // Check if user has admin rights - $nb_users = $this->db - ->table(User::TABLE) - ->eq('id', $user_id) - ->eq('is_admin', 1) - ->count(); - - if ($nb_users > 0) return true; + // Check if the user has admin rights + if ($this->user->isAdmin($user_id)) { + return true; + } // Otherwise, allow only specific users return (bool) $this->db diff --git a/app/Model/User.php b/app/Model/User.php index b54f6309..33bd6720 100644 --- a/app/Model/User.php +++ b/app/Model/User.php @@ -29,6 +29,24 @@ class User extends Base const EVERYBODY_ID = -1; /** + * Return true is the given user id is administrator + * + * @access public + * @param integer $user_id User id + * @return boolean + */ + public function isAdmin($user_id) + { + $result = $this->db + ->table(User::TABLE) + ->eq('id', $user_id) + ->eq('is_admin', 1) + ->count(); + + return $result > 0; + } + + /** * Get the default project from the session * * @access public |