PHP code example of samchentw / permission

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

    

samchentw / permission example snippets


    use Samchentw\Permission\Traits\Supports\HasRoles;

    class User extends Authenticatable
    {
        use HasApiTokens;
        use HasFactory;
        use HasProfilePhoto;
        use Notifiable;
        use TwoFactorAuthenticatable;
        use HasRoles;

    $user = User::whereId(1);
    // Adding roles to a user
    $rolesIds = [ 1, 2, 3];
    $user->addRolesByIds($rolesIds);

    // remove roles
    $user->deleteRoleByIds($rolesIds);

    // Syncing Associations
    $user->syncRoleByIds($rolesIds);

  "groups" => [
        "pages" => [
            [
                'label' => '角色管理',
                'key' => 'Page.Role',
                'permissions' => ['Create']
            ]
        ],

        "features" => [
            [
                'group' =>'身分權限',
                'label' => '系統-管理員',
                'key' => 'Identity.Admin'
            ],
            [
                'group' =>'身分權限',
                'label' => '系統-會員',
                'key' => 'Identity.Member'
            ]
        ]
    ]

    $enable = config('permissionmap.enable', false);
    Gate::define("Page.Role", function (User $user) use ($enable) {
        $permission = collect($user->allPermission());
        $check = $permission->contains("Page.Role");
        if (!$enable) return true;
        return $check ? Response::allow() : Response::deny(trans('messages.not_permission'));
    });

     Gate::define("Page.Role.Create", function (User $user) use ($enable) {
        $permission = collect($user->allPermission());
        $check = $permission->contains("Page.Role.Create");
        if (!$enable) return true;
        return $check ? Response::allow() : Response::deny(trans('messages.not_permission'));
    });

    Gate::define("Identity.Admin", function (User $user) use ($enable) {
        $permission = collect($user->allPermission());
        $check = $permission->contains("Identity.Admin");
        if (!$enable) return true;
        return $check ? Response::allow() : Response::deny(trans('messages.not_permission'));
    });

    Gate::define("Identity.Member", function (User $user) use ($enable) {
        $permission = collect($user->allPermission());
        $check = $permission->contains("Identity.Member");
        if (!$enable) return true;
        return $check ? Response::allow() : Response::deny(trans('messages.not_permission'));
    });

sh
$ php artisan migrate