Я создаю права пользователя на laravel. В моей БД у меня есть таблица с id/user_id/model/write/read/deleteпроверить права пользователя на выполнение чего-то
последние три разрешения перечислены типа: включено и выключено.
в моей модели Пользователь им написал метод установки:
protected $models = ['dashboard', 'preferences'];
public function setPermissions($input=false)
{
foreach($this->models as $model) {
$read = (isset($input[$model]['read']) ? 'on' : 'off');
$write = (isset($input[$model]['write']) ? 'on' : 'off');
$delete = (isset($input[$model]['delete']) ? 'on' : 'off');
$perms = Permissions::firstOrNew([
'user_id' => $this->id,
'model' => $model,
]);
$perms->read = $read;
$perms->write = $write;
$perms->delete = $delete;
$perms->save();
}
}
в разрешение модели им пишут:
use Illuminate\Database\Eloquent\SoftDeletingTrait;
class Permissions extends Eloquent {
use SoftDeletingTrait;
protected $table = 'user_permissions';
protected $fillable = ['user_id', 'model', 'read', 'write', 'delete'];
public function user()
{
return $this->belongsTo('User','user_id','id');
}
}
ОК, у меня есть метод, как установить разрешение установки формы. Теперь мне нужно, чтобы проверить право, если пользователь имеет разрешение на запись или чтение, удаление и сделать somehting так:
if (Auth::user->hasRights('write', 'delete'))
//do something
Пожалуйста, помогите мне, как выбрать из разрешений БД и проверить права пользователя с помощью метода hasRight.
Я думаю, что нужно проверить, разрешены ли разрешения пользователя из базы данных в массиве. Как это должно выглядеть?
и, может быть, у вас есть крошечный код моего метода setPermission? thank u