diff options
author | Frédéric Guillot <contact@fredericguillot.com> | 2014-03-05 20:32:53 -0500 |
---|---|---|
committer | Frédéric Guillot <contact@fredericguillot.com> | 2014-03-05 20:32:53 -0500 |
commit | 1e994f34486da72662ff39f1c3e130e4480e30ab (patch) | |
tree | 91ed60da59fe564888adde129207af1eda169905 /models | |
parent | 5d9b5aee6d70de0c1cbd6abe79a22a6c51719069 (diff) |
Improve unit test
Diffstat (limited to 'models')
-rw-r--r-- | models/acl.php | 7 | ||||
-rw-r--r-- | models/project.php | 10 |
2 files changed, 15 insertions, 2 deletions
diff --git a/models/acl.php b/models/acl.php index 767d62f8..86db3c32 100644 --- a/models/acl.php +++ b/models/acl.php @@ -21,6 +21,7 @@ class Acl extends Base 'config' => array('index'), ); + // Return true if the specified controller/action is allowed according to the given acl public function isAllowedAction(array $acl, $controller, $action) { if (isset($acl[$controller])) { @@ -30,31 +31,37 @@ class Acl extends Base return false; } + // Return true if the given action is public public function isPublicAction($controller, $action) { return $this->isAllowedAction($this->public_actions, $controller, $action); } + // Return true if the given action is allowed for a regular user public function isUserAction($controller, $action) { return $this->isAllowedAction($this->user_actions, $controller, $action); } + // Return true if the logged user is admin public function isAdminUser() { return isset($_SESSION['user']['is_admin']) && $_SESSION['user']['is_admin'] === '1'; } + // Return true if the logged user is not admin public function isRegularUser() { return isset($_SESSION['user']['is_admin']) && $_SESSION['user']['is_admin'] === '0'; } + // Get the connected user id public function getUserId() { return isset($_SESSION['user']['id']) ? (int) $_SESSION['user']['id'] : 0; } + // Check if an action is allowed for the logged user public function isPageAccessAllowed($controller, $action) { return $this->isPublicAction($controller, $action) || diff --git a/models/project.php b/models/project.php index 45cd1baa..238a60b4 100644 --- a/models/project.php +++ b/models/project.php @@ -12,6 +12,7 @@ class Project extends Base const ACTIVE = 1; const INACTIVE = 0; + // Get a list of people that can by assigned for tasks public function getUsersList($project_id) { $allowed_users = $this->getAllowedUsers($project_id); @@ -24,6 +25,7 @@ class Project extends Base return array(t('Unassigned')) + $allowed_users; } + // Get a list of allowed people for a project public function getAllowedUsers($project_id) { return $this->db @@ -34,6 +36,7 @@ class Project extends Base ->listing('user_id', 'username'); } + // Get allowed and not allowed users for a project public function getAllUsers($project_id) { $users = array( @@ -56,6 +59,7 @@ class Project extends Base return $users; } + // Allow a specific user for a given project public function allowUser($project_id, $user_id) { return $this->db @@ -63,6 +67,7 @@ class Project extends Base ->save(array('project_id' => $project_id, 'user_id' => $user_id)); } + // Revoke a specific user for a given project public function revokeUser($project_id, $user_id) { return $this->db @@ -72,6 +77,7 @@ class Project extends Base ->remove(); } + // Check if a specific user is allowed to access to a given project public function isUserAllowed($project_id, $user_id) { // If there is nobody specified, everybody have access to the project @@ -82,13 +88,13 @@ class Project extends Base if ($nb_users < 1) return true; - // check if user has admin rights + // Check if user has admin rights $nb_users = $this->db ->table(\Model\User::TABLE) ->eq('id', $user_id) ->eq('is_admin', 1) ->count(); - + if ($nb_users > 0) return true; // Otherwise, allow only specific users |