summaryrefslogtreecommitdiff
path: root/app/Model
diff options
context:
space:
mode:
Diffstat (limited to 'app/Model')
-rw-r--r--app/Model/ProjectPermission.php24
-rw-r--r--app/Model/User.php18
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