Server IP : 23.254.227.96 / Your IP : 216.73.216.46 Web Server : Apache/2.4.62 (Unix) OpenSSL/1.1.1k System : Linux hwsrv-1277026.hostwindsdns.com 4.18.0-477.13.1.el8_8.x86_64 #1 SMP Tue May 30 14:53:41 EDT 2023 x86_64 User : viralblo ( 1001) PHP Version : 8.1.31 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/viralblo/instantblog/app/Providers/ |
Upload File : |
<?php namespace App\Providers; use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider; use Illuminate\Support\Facades\Gate; use App\Models\User; use App\Models\Post; use App\Models\Comment; class AuthServiceProvider extends ServiceProvider { /** * The policy mappings for the application. * * @var array */ protected $policies = [ 'App\Model' => 'App\Policies\ModelPolicy', ]; /** * Register any authentication / authorization services. * * @return void */ public function boot() { $this->registerPolicies(); Gate::before(function ($user, $ability){ return $user->role == 'super-admin' ? true : null; }); Gate::define('own-post', function (User $user, Post $post) { return $user->id == $post->user_id; }); Gate::define('own-comment', function (User $user, Comment $comment) { return $user->id == $comment->user_id; }); Gate::define('admin-area', function($user) { return $user->role == 'admin' ? true : null; }); Gate::define('admin-access', function($user) { return $user->role == 'admin' or $user->username == 'admin-access'; }); Gate::define('moderator-post', function($user) { $collection = collect(['admin', 'editor']); return $collection->contains($user->role) ? true : null; }); Gate::define('publish-post', function($user) { $collection = collect(['admin', 'editor', 'verified']); return $collection->contains($user->role) ? true : null; }); } }