Aceptar multiples roles en el middleware de roles
This commit is contained in:
@@ -6,8 +6,16 @@ use Closure;
|
||||
use App\Exceptions\NotAuthorizedException;
|
||||
|
||||
class RoleMiddleware {
|
||||
public function handle($request, Closure $next, $role) {
|
||||
if(!$request->user->hasRole($role)) {
|
||||
public function handle($request, Closure $next, $raw_roles) {
|
||||
$user = $request->user;
|
||||
$roles = explode('|', $raw_roles);
|
||||
$has_permission = false;
|
||||
|
||||
foreach($roles as $role){
|
||||
$has_permission = $has_permission || $user->hasRole($role);
|
||||
}
|
||||
|
||||
if(!$has_permission) {
|
||||
throw new NotAuthorizedException($request->user);
|
||||
}
|
||||
|
||||
|
||||
@@ -8,15 +8,15 @@ $router->get('/', function () use ($router) {
|
||||
|
||||
$router->group(['prefix' => 'api/v1', 'middleware' => ['auth', 'log_endpoint']], function () use ($router) {
|
||||
$router->group(['prefix' => '/users'], function () use ($router) {
|
||||
$router->get( '/', ['as' => 'users.all', 'uses' => 'UsuariosController@all']);
|
||||
$router->get( '/', ['as' => 'users.all', 'uses' => 'UsuariosController@all', 'middleware' => ['role:admin|global_admin']]);
|
||||
$router->get( '/{id}', ['as' => 'users.get', 'uses' => 'UsuariosController@get', 'middleware' => ['role:admin|global_admin']]);
|
||||
$router->post( '/', ['as' => 'users.create', 'uses' => 'UsuariosController@create', 'middleware' => ['role:admin|global_admin']]);
|
||||
$router->put( '/{id}', ['as' => 'users.update', 'uses' => 'UsuariosController@update', 'middleware' => ['role:admin|global_admin']]);
|
||||
$router->delete('/{id}', ['as' => 'users.delete', 'uses' => 'UsuariosController@delete', 'middleware' => ['role:admin|global_admin']]);
|
||||
$router->get( '/me', ['as' => 'users.get_me', 'uses' => 'UsuariosController@getMe']);
|
||||
$router->get( '/{id}', ['as' => 'users.get', 'uses' => 'UsuariosController@get']);
|
||||
$router->post( '/', ['as' => 'users.create', 'uses' => 'UsuariosController@create']);
|
||||
$router->put( '/{id}', ['as' => 'users.update', 'uses' => 'UsuariosController@update']);
|
||||
$router->delete('/{id}', ['as' => 'users.delete', 'uses' => 'UsuariosController@delete']);
|
||||
$router->get( '/{id}/restaurantes/', ['as' => 'users.get_restaurantes', 'uses' => 'UsuariosController@getRestaurantes']);
|
||||
$router->put( '/{id}/restaurantes/{restaurant}', ['as' => 'users.add_to_restaurant', 'uses' => 'UsuariosController@addToRestaurant']);
|
||||
$router->delete('/{id}/restaurantes/{restaurant}', ['as' => 'users.remove_from_restaurant', 'uses' => 'UsuariosController@removeFromRestaurant']);
|
||||
$router->get( '/{id}/restaurantes/', ['as' => 'users.get_restaurantes', 'uses' => 'UsuariosController@getRestaurantes', 'middleware' => ['role:admin|global_admin']]);
|
||||
$router->put( '/{id}/restaurantes/{restaurant}', ['as' => 'users.add_to_restaurant', 'uses' => 'UsuariosController@addToRestaurant', 'middleware' => ['role:admin|global_admin']]);
|
||||
$router->delete('/{id}/restaurantes/{restaurant}', ['as' => 'users.remove_from_restaurant', 'uses' => 'UsuariosController@removeFromRestaurant', 'middleware' => ['role:admin|global_admin']]);
|
||||
});
|
||||
|
||||
$router->group(['prefix' => '/restaurantes'], function () use ($router) {
|
||||
|
||||
Reference in New Issue
Block a user