summaryrefslogtreecommitdiff
path: root/app/Core/Security/Role.php
blob: cb45a8af4963c7b8041c59a5c196a8bc394c06e6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?php

namespace Kanboard\Core\Security;

/**
 * Role Definitions
 *
 * @package  security
 * @author   Frederic Guillot
 */
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';

    /**
     * Get application roles
     *
     * @access public
     * @return array
     */
    public function getApplicationRoles()
    {
        return array(
            self::APP_ADMIN => t('Administrator'),
            self::APP_MANAGER => t('Manager'),
            self::APP_USER => t('User'),
        );
    }

    /**
     * Get project roles
     *
     * @access public
     * @return array
     */
    public function getProjectRoles()
    {
        return array(
            self::PROJECT_MANAGER => t('Project Manager'),
            self::PROJECT_MEMBER => t('Project Member'),
            self::PROJECT_VIEWER => t('Project Viewer'),
        );
    }

    /**
     * Get role name
     *
     * @access public
     * @param  string $role
     * @return string
     */
    public function getRoleName($role)
    {
        $roles = $this->getApplicationRoles() + $this->getProjectRoles();
        return isset($roles[$role]) ? $roles[$role] : t('Unknown');
    }
}