Skip to content

Instantly share code, notes, and snippets.

@willianmano
Created September 27, 2014 00:31
Show Gist options
  • Save willianmano/90466f304e5ecb37fc2b to your computer and use it in GitHub Desktop.
Save willianmano/90466f304e5ecb37fc2b to your computer and use it in GitHub Desktop.
pog_temp_acls_laravel
Route::filter('acl', function($route, $request)
{
$roles = array(
'visitante' => null,
'assessorado' => 'visitante',
'usuarioassessor' => 'visitante',
'assessor' => 'usuarioassessor'
);
$allow = array(
'visitante' => array(
'register'
),
'usuarioassessor' => array(
'admin',
),
'assessor' => array(
'admin/usuarioassessor',
'admin/usuarioassessor/create',
'admin/usuarioassessor/update',
'admin/usuarioassessor/delete'
)
);
$acl = array(
'roles' => $roles,
'allow' => $allow
);
$uri = $route->getUri();
if($route->getActionName() != 'Closure') {
$uri = current(explode('/{', $route->getUri()));
}
$perfil = Auth::user()->lgn_perfil;
$permissions = array_merge($acl['allow'][$perfil], $acl['allow'][$acl['roles'][$perfil]]);
$isAllowed = in_array($uri, $permissions);
if(!$isAllowed) {
return Redirect::to('/')->with('error', 'Acesso não autorizado.');;
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment