|
|
<?php |
|
|
|
|
|
namespace Kanboard\Core\Security; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Role |
|
|
{ |
|
|
const APP_ADMIN = 'app-admin'; |
|
|
const APP_MANAGER = 'app-manager'; |
|
|
const APP_USER = 'app-user'; |
|
|
const APP_PUBLIC = 'app-public'; |
|
|
|
|
|
const PROJECT_MANAGER = 'project-manager'; |
|
|
const PROJECT_MEMBER = 'project-member'; |
|
|
const PROJECT_VIEWER = 'project-viewer'; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function getApplicationRoles() |
|
|
{ |
|
|
return array( |
|
|
self::APP_ADMIN => t('Administrator'), |
|
|
self::APP_MANAGER => t('Manager'), |
|
|
self::APP_USER => t('User'), |
|
|
); |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function getProjectRoles() |
|
|
{ |
|
|
return array( |
|
|
self::PROJECT_MANAGER => t('Project Manager'), |
|
|
self::PROJECT_MEMBER => t('Project Member'), |
|
|
self::PROJECT_VIEWER => t('Project Viewer'), |
|
|
); |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function isCustomProjectRole($role) |
|
|
{ |
|
|
return ! empty($role) && $role !== self::PROJECT_MANAGER && $role !== self::PROJECT_MEMBER && $role !== self::PROJECT_VIEWER; |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function getRoleName($role) |
|
|
{ |
|
|
$roles = $this->getApplicationRoles() + $this->getProjectRoles(); |
|
|
return isset($roles[$role]) ? $roles[$role] : t('Unknown'); |
|
|
} |
|
|
} |
|
|
|