Я некоторое время работал с laravel и создал простой ACL с использованием промежуточного программного обеспечения и шлюзов. У меня есть два типа пользователей: "administratorrador" и "modelador", у каждого пользователя есть столбец с именем "categoryoria" проверить, к какой категории он принадлежит. Что я делаю, это просто проверяю, равняется ли пользовательская категория категориям в промежуточном программном обеспечении и шлюзе, вот часть кода, который я сделал.
In AuthServiceProvider.php
Gate::define('eAdmin', function ($user) {
return $user->categoria == "administrador";
});
В web.php
Route::resource('/menus', 'MenuController')->middleware('can:eAdmin');
Моя миграция
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->enum('categoria', ['administrador','modelador']);
});
}
Это работает отлично, только администраторы могут получить доступ к функциям в MenuController, но я хочу знать, если это правильный способ сделать это или если
Я должен создать таблицу ролей или создать политику для модели. Спасибо.