Я создаю приложение Laravel. Мне нужно проводить различие между гостем, администратором и владельцем. Я планирую использовать Confide и Entrust. Позвольте мне привести пример с приложением todo:
Первая часть вопроса:
Гость может получить доступ только к внешнему интерфейсу, администратор может получить доступ к внутреннему интерфейсу, чтобы добавлять / редактировать свои «собственные» проекты и выполнять задания. Владелец может просматривать все проекты всех зарегистрированных пользователей, а также просматривать статистику о том, сколько проектов и задач, сколько пользователей используют приложение, сбросить пароли для заданных пользователей, систему тикетов и т. Д.
Я бы создал три роли: гость, администратор и владелец (используя Entrust). Тогда я бы (в файле роутера) сказал, что все маршруты, начинающиеся с admin, должны быть аутентифицированы. Но как решить это для «владельца». Итак, у меня следующая ситуация:
1) Маршруты для гостя: Route :: group (массив (‘before’ => ‘guest’), функция () {….}
2) Маршруты для администратора: Route :: group (массив (‘prefix’ => ‘admin’, ‘before’ => ‘auth’), function () {…}
3) Маршруты для владельца:
Как исправить маршруты владельца: это так же просто, как сделать: Route :: group (array (‘prefix’ => ‘owner’, ‘before’ => ‘auth’), function () {} или я должен взять владелец как часть раздела «администратор» и делает ли дискриминация в контроллерах?
Вторая часть вопроса: как я могу гарантировать, что пользователю, который подписывается на приложение, автоматически назначается роль администратора.
Третья часть вопроса: как я могу гарантировать, что только 1 владелец может получить доступ к приложению с полными правами?
Вам нужно использовать ACL
Вот:
https://github.com/intrip/laravel-authentication-acl
Узнайте больше об acl (если вы никогда не использовали его ранее) здесь:
http://en.wikipedia.org/wiki/Access_control_list
Я пришел из cakephp, где обычно / admin / * является авторизованным контентом, в приложении вы можете определить, для какого пользователя вы предоставляете контент, так что вы можете отправлять их одному или другому контенту.
После регистрации установите группу как admin (легко)
Третья часть вопроса вам придется прояснить. Я не знаю, нужен ли вам один админ или первый админ и т. Д.
Других решений пока нет …