2013-11-02 8 views
1

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

Я намерен использовать Laravel 4 в качестве моей рамки и Sentry 2 для обработки разрешений.

Мой вопрос:

Если я использую пользователю, позволяет сказать, Admin уровень доступа, чтобы создать контрольный список и у меня есть, скажем, 100, инспектор пользователи уровня, могут ограничить доступ к отдельным контрольным спискам для каждого отдельного пользователя, использующего Sentry? Я в идеале хочу разрешить пользователю иметь доступ к одному контрольному списку (сбор чеков).

ответ

1

Вы можете легко создавать отдельные группы для контрольных списков:

// Create the group 
$group = Sentry::createGroup(array(
    'name'  => 'Administrators', 
    'permissions' => array(
     'checklists.admin' => 1, 
     'checklists.view' => 1, 
    ), 
)); 

// Create the group 
$group = Sentry::createGroup(array(
    'name'  => 'checklists.view.101', 
    'permissions' => array(
     'checklists.view.101' => 1, 
    ), 
)); 

Добавить пользователя в контрольный список группы:

$user = Sentry::getUser()->addGroup(Sentry::getGroupProvider()->findByName('Checklist101')); 

И проверить, если он имеет доступ к нему:

return $user->hasAnyAccess(['checklists.view', 'checklists.view.101']) 

В этом случае, если ваш пользователь является администратором, он также сможет его просмотреть.

+0

Благодарим за отзыв, но это не сработает, если контрольные списки создаются динамически, если каждый раз, когда я создаю список, я создаю группу специально для этого списка и назначаю пользователей новой группе. Разве это не приведет к загрязнению таблицы групп пользователей? Лично я теперь размышляю о том, как отделить список пользователей/чеков с таблицей поиска, в которой перечислены идентификатор контрольного списка и разрешенные идентификаторы пользователя. – Wally

+0

Имея способ отделить реальные группы от групп списков, в чем проблема «загрязнения» таблиц групп? Имо это лучше, чем просто создать что-то совершенно другое, чтобы обрабатывать то, что должно быть обработано вашим основным классом полномочий. –

+0

Достаточно честный, я вижу вашу точку там. Я вижу, что есть пользовательские разрешения, которые я мог бы использовать. Еще раз, спасибо. – Wally

Смежные вопросы