PHP code example of ktourvas / rolesandperms

1. Go to this page and download the library: Download ktourvas/rolesandperms library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

ktourvas / rolesandperms example snippets


use ktourvas\rolesandperms\Entities\HasPermissions;

class User extends Authenticatable
{
    use  HasRoles, HasPersmissions, Notifiable; 

$user->roles()->sync([
    Role::where('name', 'admin')->first()->id
]);

$user->userIs('admin'); 
// boolean 



use App\User;
use some\model\path\SomeModel;

class SomeModelPolicy
{
    public function viewAny(User $user) {
        return $user->canViewAny(SomeModel::class);
    }

    public function view(User $user, SomeModel $someModel) {
        return $user->canView( $someModel );
    }

    public function create(User $user) {
        return $user->canDelete( SomeModel::class );
    }

    public function update(User $user, SomeModel $someModel) {
        return $user->canUpdate( $someModel );
    }

    public function delete(User $user, SomeModel $someModel) {
        return $user->canDelete( $someModel );
    }

    public function restore(User $user, SomeModel $someModel) {
        return $user->canRestore( $someModel );
    }

    public function forceDelete(User $user, SomeModel $someModel) {
        return $user->canForceDelete( $someModel );
    }
}

$user->permissions()->create([
    'policy' => SomeModel::class, 
    'viewany' => 1, 
    'create' => 1,
    'update' => 1,
    'delete'  => 1,
    'restore'  => 1,
    'forcedelete' => 1,
]);
 
$user->permissions()->where('policy', SomeModel::class)->update([ 
    'viewany' => 0, 
    'create' => 1,
    'update' => 1,
    'delete'  => 0,
    'restore'  => 1,
    'forcedelete' => 0,
]);

$user->permissions()->where('policy', SomeModel::class)->delete();

$policy = $user->permissions()->create([
    'policy' => SomeModel::class, 
    'viewany' => 0, 
    'create' => 0,
    'update' => 0,
    'delete'  => 0,
    'restore'  => 0,
    'forcedelete' => 0,
]);

$policy->records()->create([
'record_id'=>1,
'view'=>1, 
]);
bash
$ php artisan migrate