这是我提供的包 lrp

0.0.3 2023-05-10 16:04 UTC

This package is auto-updated.

Last update: 2024-09-03 22:40:48 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

此包提供基本的角色和权限,此 readme.md 包含使用示例。

安装

您可以通过 composer 安装此包

composer require novatopro/lrp

您可以使用以下命令发布和运行迁移

php artisan vendor:publish --tag="lrp-migrations"
php artisan migrate

用法

更新用户模型关系

app\Models\User.php

use NovatoPro\Lrp\Traits\UserLrp;

class User extends Authenticatable
{
    use UserLrp;
}

更新 AuthServiceProvider 中的 boot 方法

app\Providers\AuthServiceProvider.php

Gate::define('access', function (User $user, ...$permissions) {
    return $user->hasPermissions($permissions);
});

示例

use NovatoPro\Lrp\Models\Role;
use NovatoPro\Lrp\Models\Permission;
// Example user credentials
$credentials = [
    'name'=>'Example User',
    'email'=>'developer.user@example.com',
    'password'=>'password'
];

// Create example user
$user = User::updateOrCreate(['email'=>$credentials['email']],['name'=>$credentials['name'],'password'=>Hash::make($credentials['password'])]);

// Create example role
$role = Role::updateOrCreate(['name'=>'Developer Features','slug'=>'developer-features']);

// Create example permission
$permission = Permission::updateOrCreate(['name'=>'Dev','slug'=>'dev','description'=>'Can see features in development']);

// Add permision to role without remove, without duplicate
$role->permissions()->syncWithoutDetaching($permission->id);

// Add role to user without remove, without duplicate
$user->roles()->syncWithoutDetaching($role->id);

// Check permissions in controllers
if($user->can('access', ['developer','dev','develop'])){
    // Can see features in development
}else{
    // Can't see features in development
}

// Authorize with permissions
use Illuminate\Support\Facades\Gate;
Gate::authorize('access','dev');
// Check permissions in blade
@can('access', ['developer','dev','develop'])
    <h1>Can see features in development</h1>
@else
    <h1>Can't see features in development</h1>
@endcan

许可证

MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件