Как ограничить доступ на удаление в laravel с помощью sentry

Использование Laravel 4 и Sentry. У меня есть система администрирования CRUD, к которой могут получить доступ менеджеры и администраторы. Я хочу, чтобы менеджеры имели доступ ко всем операциям CRUD, кроме DELETE. Я знаю, что могу добавить строку, например

@if (Sentry::check())

на мой взгляд, чтобы убедиться, что пользователь вошел в систему, но не знаю, как проверить, что он является администратором.

У меня есть следующий фильтр

Route::filter('auth.admin', function()
{

$user = Sentry::getUser();
$admin = Sentry::findGroupByName('Admins');

if (!$user->inGroup($admin)) return Redirect::to('admin/login');
});

person Paul Wright    schedule 24.09.2014    source источник


Ответы (1)


Простой способ:

if (Sentry::getUser()->isSuperUser())

// or
if (Sentry::hasPermission('superuser')) // or admin or whatever permission you want

или явно:

if (Sentry::hasPermission('delete'))
person Jarek Tkaczyk    schedule 24.09.2014
comment
Ты звезда. Я обновил заполнение таблицы групп, чтобы у меня был суперпользователь и я мог использовать ваши первые два варианта. Sentry::getGroupProvider()-›create(array( 'name' =› 'Пользователи', 'permissions' =› array( 'admin' =› 0, 'users' =› 1, 'superuser' =› 0, ) )); Sentry::getGroupProvider()-›create(array( 'name' =› 'Администраторы', 'permissions' =› array( 'admin' =› 1, 'users' =› 1, 'superuser' =› 1, ) )); - person Paul Wright; 25.09.2014