Gates: Writing Gates

/**
 * Register any authentication / authorization services.
 *
 * @return void
 */
public function boot()
{
    $this->registerPolicies();

    Gate::define('update-post', function ($user, $post) {
        return $user->id == $post->user_id;
    });
}
/**
 * Register any authentication / authorization services.
 *
 * @return void
 */
public function boot()
{
    $this->registerPolicies();

    Gate::define('update-post', 'App\Policies\PostPolicy@update');
}

Resource Gates

Gate::resource('posts', 'App\Policies\PostPolicy');
Gate::define('posts.view', 'App\Policies\App\Policies\PostPolicy@view');
Gate::define('posts.create', 'App\Policies\App\Policies\PostPolicy@create');
Gate::define('posts.update', 'App\Policies\App\Policies\PostPolicy@update');
Gate::define('posts.delete', 'App\Policies\App\Policies\PostPolicy@delete');
Gate::resource('posts', 'PostPolicy', [
    'image' => 'updateImage',
    'photo' => 'updatePhoto',
]);

Gates: Writing Gates — Structure map

Clickable & Draggable!

Gates: Writing Gates — Related pages: