NamedRole.php 2.88 KB
Newer Older
1
2
3
4
5
6
<?php
namespace UnicaenAuth\Acl;

use Zend\Permissions\Acl\Role\RoleInterface;

/**
7
 * Rôle avec nom explicite (humainement intelligible).
8
 *
9
 * @author Bertrand GAUTHIER <bertrand.gauthier at unicaen.fr>
10
11
12
13
14
15
16
 */
class NamedRole extends \BjyAuthorize\Acl\Role
{
    /**
     * @var string
     */
    protected $roleName;
17
18
19
20
21
    
    /**
     * @var string
     */
    protected $roleDescription;
22
23

    /**
24
25
26
27
28
29
30
31
32
     * @var bool
     */
    protected $selectable = true;
    

    /**
     * Constructeur.
     * 
     * @param string|null               $id
33
     * @param RoleInterface|string|null $parent
34
35
36
     * @param string                    $name
     * @param string                    $description
     * @param bool                      $selectable
37
     */
38
    public function __construct($id = null, $parent = null, $name = null, $description = null, $selectable = true)
39
    {
40
        parent::__construct($id, $parent);
41
        
42
43
44
45
        $this
                ->setRoleName($name ?: $id)
                ->setRoleDescription($description ?: null)
                ->setSelectable($selectable);
46
47
    }

48
49
50
51
52
53
54
55
56
57
    /**
     * Retourne la représentation littérale de ce rôle.
     * 
     * @return string
     */
    public function __toString()
    {
        return $this->getRoleName() ?: $this->getRoleId();
    }
    
58
    /**
59
     * Retourne le nom du rôle.
60
61
62
63
64
65
66
67
68
     * 
     * @return string
     */
    public function getRoleName()
    {
        return $this->roleName;
    }

    /**
69
     * Spécifie le nom du rôle.
70
71
72
73
74
75
76
77
78
     * 
     * @param string $roleName
     * @return self
     */
    public function setRoleName($roleName)
    {
        $this->roleName = (string) $roleName;
        return $this;
    }
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100

    /**
     * Retourne la description du rôle.
     * 
     * @return string
     */
    public function getRoleDescription()
    {
        return $this->roleDescription;
    }

    /**
     * Spécifie la description du rôle.
     * 
     * @param string $roleDescription
     * @return self
     */
    public function setRoleDescription($roleDescription)
    {
        $this->roleDescription = (string) $roleDescription;
        return $this;
    }
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
    
    /**
     * Teste si ce rôle est sélectionnable par l'utilisateur. 
     * Cela concerne les applications qui permettent à l'utilisateur de choisir son profil courant
     * parmi les différents rôles qu'il possède.
     * 
     * @return bool
     */
    public function getSelectable()
    {
        return $this->selectable;
    }

    /**
     * Spécifie si ce rôle est sélectionnable par l'utilisateur. 
     * Cela concerne les applications qui permettent à l'utilisateur de choisir son profil courant
     * parmi les différents rôles qu'il possède.
     * 
     * @param bool $selectable
     * @return \UnicaenAuth\Acl\NamedRole
     */
    public function setSelectable($selectable = true)
    {
        $this->selectable = $selectable;
        return $this;
    }
127
}