1 | <?php |
||
41 | abstract class AbstractResponder |
||
42 | { |
||
43 | use RoleRequestAwareTrait; |
||
44 | use ResourceRouteAwareTrait; |
||
45 | |||
46 | /** |
||
47 | * PSR7 Request |
||
48 | * |
||
49 | * @var Request |
||
50 | * |
||
51 | * @access protected |
||
52 | */ |
||
53 | protected $request; |
||
54 | |||
55 | /** |
||
56 | * PSR7 Response |
||
57 | * |
||
58 | * @var Response |
||
59 | * |
||
60 | * @access protected |
||
61 | */ |
||
62 | protected $response; |
||
63 | |||
64 | /** |
||
65 | * Failed Route |
||
66 | * |
||
67 | * @var Route |
||
68 | * |
||
69 | * @access protected |
||
70 | */ |
||
71 | protected $route; |
||
72 | |||
73 | /** |
||
74 | * __invoke |
||
75 | * |
||
76 | * @param Request $request DESCRIPTION |
||
77 | * @param Response $response DESCRIPTION |
||
78 | * @param Route $route DESCRIPTION |
||
79 | * |
||
80 | * @return mixed |
||
81 | * |
||
82 | * @access public |
||
83 | */ |
||
84 | 1 | public function __invoke(Request $request, Response $response, Route $route) |
|
94 | |||
95 | /** |
||
96 | * GetMessage |
||
97 | * |
||
98 | * @return mixed |
||
99 | * |
||
100 | * @access protected |
||
101 | */ |
||
102 | 1 | protected function getAuthorizationMessage() |
|
103 | { |
||
104 | 1 | $role = $this->getRole($this->request)->getRoleId(); |
|
105 | 1 | $resource = $this->getResourceIdFromRoute($this->route); |
|
106 | 1 | $privilege = $this->getPrivilegeFromRoute($this->route); |
|
107 | |||
108 | $needed = $privilege |
||
109 | 1 | ? sprintf('"%s" privilege', $privilege) |
|
110 | 1 | : 'privileges'; |
|
111 | |||
112 | 1 | return sprintf( |
|
113 | 1 | '"%s" does not have %s on "%s"', |
|
114 | 1 | $role, |
|
115 | 1 | $needed, |
|
116 | $resource |
||
117 | 1 | ); |
|
118 | } |
||
119 | |||
120 | /** |
||
121 | * Not Authorized |
||
122 | * |
||
123 | * @return Response |
||
124 | * |
||
125 | * @access protected |
||
126 | */ |
||
127 | abstract protected function notAuthorized(); |
||
128 | } |
||
129 |