Laravel user capabilities
15:34 19 Dec 2015

Within Laravel you can easily define abilities and then hook into them later on a user request regarding to do different actions:

$gate->define('update-post', function ($user, $post) {
    return $user->id === $post->user_id;
});

But almost all my defined abilities has this part $user->id === $model->user_id in it. I don't like it as it's a kind of repeating a condition over and over which I think could be more abstract.

Most of my defined abilities are according to updating/deleting records, so it would be better if I could make a global condition applied to all of them or if there could be a group ability defining which is like to what we do in routing.

Is there any workaround for it? I really like it DRY.

php laravel laravel-5.1