PHP code example of nahid / permit

1. Go to this page and download the library: Download nahid/permit 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/ */

    

nahid / permit example snippets


Nahid\Permit\PermitServiceProvider::class,

'Permit'    => Nahid\Permit\Facades\Permit::class,


return [
    'users' => [
        'model' => \App\Models\User::class,
        'table' => 'users',
        'role_column'   => 'type'
    ],

    'super_user'    =>  'admin',

    'abilities'   => [
       // "module"  => ['ability1', 'ability2', 'ability3'=>'policy_module.policy'],
    ],


    'policies'  => [
        /*'module' => [
            'update'    => '\App\Permit\Policies\PostPolicy@update',
        ],*/
    ],



    'roles' => [
        /*'role_name' => [
            'module.ability',
        ],*/
    ]
];

namespace App;

use Illuminate\Database\Eloquent\Model;
use Nahid\Permit\Users\Permitable;

class User extends Model
{
    use Permitable;
}

Permit::setUserRole(1, 'admin');

Permit::setUserPermissions(1, 'post', ['create'=>true, 'update'=>true]);

Permit::setRolePermissions('admin', 'post', ['create'=>true, 'update'=>true]);

$user = User::find(1);

if (Permit::userCan($user, 'post.create')) {
    //do something
}

$user = User::find(1);

if (Permit::roleCan($user, 'post.create')) {
    //do something
}

$user = User::find(1);

if (Permit::can($user, 'post.create')) {
    //do something
}

namespace App\Policies;

use App\Comment;
use App\User;

class CommentPolicy
{
    public function update(User $user, Comment $comment)
    {
        return $user->id == $comment->user_id;
    }
}

    ,'policies'  => [
        'comment'  => [
            'update'    => '\App\Policies\CommentPolicy@update'
        ]
    ]

"comment"  => ['create', 'update'=>'comment.update', 'delete'],

'abilities'   => [
        "comment"  => ['create', 'update'=>'comment.update', 'delete'],
        "user"  => ['create', 'update', 'delete'],
    ],

    'roles' => [
        'admin' => [
            'post.*',
            'user.*',
        ],

        'user'    => [
            'post.create',
            'post.update',
            'user.create',
            'user.update',
        ]
    ],

    'policies'  => [
        'comment'  => [
            'update'    => '\App\Policies\CommentPolicy@update'
        ]
    ]

$comment = Comment::find(1);
Permit::allows(auth()->user(), 'comment.update', [$comment]);

Permit::allows(auth()->user(), ['post.create', 'comment.create']);

$comment = Comment::find(1);
Permit::allows(auth()->user(), ['post.create', 'comment.update'=>[$comment], 'comment.create']);
shell
php artisan vendor:publish --provider="Nahid\Permit\PermitServiceProvider"
shell
php artisan migrate
shell
php artisan permit:sync