Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
lib
unicaen
auth
Commits
3a328aee
Commit
3a328aee
authored
Jan 06, 2016
by
Laurent Lécluse
Browse files
Ajout de la possibilité de filtrer par les routes plutôt que les les contrôleurs/actions
parent
f1cc09e6
Changes
3
Show whitespace changes
Inline
Side-by-side
Module.php
View file @
3a328aee
...
...
@@ -2,7 +2,6 @@
namespace
UnicaenAuth
;
use
UnicaenAuth\Guard\PrivilegeController
;
use
Zend\ModuleManager\Feature\AutoloaderProviderInterface
;
use
Zend\ModuleManager\Feature\ConfigProviderInterface
;
use
Zend\ModuleManager\Feature\ServiceProviderInterface
;
...
...
@@ -12,7 +11,7 @@ use Zend\ModuleManager\Feature\ServiceProviderInterface;
*
* @author Bertrand GAUTHIER <bertrand.gauthier@unicaen.fr>
*/
class
Module
implements
ConfigProviderInterface
,
ServiceProviderInterface
class
Module
implements
AutoloaderProviderInterface
,
ConfigProviderInterface
,
ServiceProviderInterface
{
/**
*
...
...
src/UnicaenAuth/Guard/PrivilegeController.php
View file @
3a328aee
...
...
@@ -9,7 +9,7 @@ use UnicaenApp\Traits\SessionContainerTrait;
/**
* Description of Controller
Guard
* Description of
Privilege
Controller
*
* @author Laurent LECLUSE <laurent.lecluse at unicaen.fr>
*/
...
...
@@ -30,9 +30,6 @@ class PrivilegeController extends Controller
protected
function
privilegesToRoles
(
array
$rules
)
{
// $session = $this->getSessionContainer();
// if (! isset($session->rules)){
$pr
=
$this
->
getPrivilegeProvider
()
->
getPrivilegesRoles
();
foreach
(
$rules
as
$index
=>
$rule
)
{
...
...
@@ -56,9 +53,6 @@ class PrivilegeController extends Controller
}
return
$rules
;
// $session->rules = $rules;
// }
// return $session->rules;
}
...
...
src/UnicaenAuth/Guard/PrivilegeRoute.php
0 → 100644
View file @
3a328aee
<?php
namespace
UnicaenAuth\Guard
;
use
BjyAuthorize\Guard\Route
;
use
Zend\ServiceManager\ServiceLocatorInterface
;
use
UnicaenAuth\Provider\Privilege\PrivilegeProviderAwareTrait
;
use
UnicaenApp\Traits\SessionContainerTrait
;
/**
* Description of PrivilegeRoute
*
* @author Laurent LECLUSE <laurent.lecluse at unicaen.fr>
*/
class
PrivilegeRoute
extends
Route
{
use
PrivilegeProviderAwareTrait
;
use
SessionContainerTrait
;
public
function
__construct
(
array
$rules
,
ServiceLocatorInterface
$serviceLocator
)
{
$this
->
serviceLocator
=
$serviceLocator
;
parent
::
__construct
(
$this
->
privilegesToRoles
(
$rules
),
$serviceLocator
);
}
protected
function
privilegesToRoles
(
array
$rules
)
{
$pr
=
$this
->
getPrivilegeProvider
()
->
getPrivilegesRoles
();
foreach
(
$rules
as
$index
=>
$rule
)
{
if
(
isset
(
$rule
[
'privileges'
]))
{
$rolesCount
=
0
;
$privileges
=
(
array
)
$rule
[
'privileges'
];
$rule
[
'roles'
]
=
isset
(
$rule
[
'roles'
])
?
(
array
)
$rule
[
'roles'
]
:
[];
foreach
(
$pr
as
$privilege
=>
$roles
)
{
if
(
in_array
(
$privilege
,
$privileges
))
{
$rolesCount
+=
count
(
$roles
);
$rule
[
'roles'
]
=
array_unique
(
array_merge
(
$rule
[
'roles'
],
$roles
));
}
}
unset
(
$rule
[
'privileges'
]);
if
(
0
<
count
(
$rule
[
'roles'
]))
{
$rules
[
$index
]
=
$rule
;
}
else
{
unset
(
$rules
[
$index
]);
}
}
}
return
$rules
;
}
/**
* Pour récupérer le serviceLocator depuis les traits de service
*
* @return ServiceLocatorInterface
*/
protected
function
getServiceLocator
()
{
return
$this
->
serviceLocator
;
}
public
static
function
getResourceId
(
$route
)
{
return
'route/'
.
$route
;
}
}
\ No newline at end of file
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment