summaryrefslogtreecommitdiff
path: root/models
diff options
context:
space:
mode:
Diffstat (limited to 'models')
-rw-r--r--models/acl.php7
-rw-r--r--models/project.php10
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