Improve unit test
This commit is contained in:
@@ -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) ||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user