2015-04-04 7 views
0

Я хочу разработать некоторое промежуточное ПО для моего приложения Laravel 5. У меня есть некоторые критерии для этого промежуточного программного обеспечения, в котором мне нужна помощь, и мы пытаемся понять, что может быть лучшим путем для решения этих задач.Middleware для пользователей Роли и разрешения

У меня несколько пользователей. И каждый пользователь имеет ОДНУЮ роль. У каждой роли есть разрешения на то, что им разрешено делать, и я хотел бы иметь способ, чтобы пользователь мог переопределить свои разрешения на роли и иметь свои особые права на них.

Этот способ, если у меня есть Джон Доу, являющийся основным пользователем, и обычные обычные пользователи не могут создавать статью, но я могу сделать это там, где в базе данных, которую Джон Доу может, я хочу, чтобы иметь возможность допустим это.

Надеюсь, что столько информации, сколько мне нужно было предоставить минус моя нынешняя схема базы данных, которую я собираюсь предоставить.

Table: users 
Fields: id, username, email, role_id 

Table: roles 
Fields: id, role, description 

Table: permissions 
Fields: id, permission, description 

Table: permission_role 
Fields: id, permission_id, role_id 
+0

Попробуйте использовать пакет, предназначенный для этой задачи, Zizacos Entrust, Sentry ... Просто зайдите в упаковщик и выполните поиск. – Kyslik

ответ

1

Настоятельно рекомендую вам оценить пакет L12 Zizaco Enstrust. Если вам нужно что-то еще или вы хотите закодировать себя, просмотрите код пакета для guiadance.

+0

Можете ли вы объяснить преимущество/недостаток делать что-то вроде Entrust и делать что-то, что связано с промежуточным программным обеспечением? – user3732216

+0

Вы можете использовать Entrust в своем промежуточном программном обеспечении для проверки ролей, разрешений или халатности до или после запроса, посмотрите на [middleware laravel docs] (http://laravel.com/docs/5.0/middleware) –

+0

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

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