raisulhridoy / simplerolepermission
这是一个轻量级且易于使用的Laravel包,让您以最少的努力管理应用程序中的用户角色和权限。使用此包,您可以使用许多预定义的方法来实现角色和权限,以及分配角色并检查其权限。此包提供了一种简单直观的编码方式,便于与现有应用程序集成。它还内置了中间件,可用于根据用户角色和权限保护路由。无论您是构建小型应用程序还是大规模系统,“Simple Role Permission”都提供了灵活且可扩展的解决方案,用于管理用户角色和权限。对于希望使用简单、轻量级包以实现目标且不增加任何不必要复杂性的开发者来说,它非常理想。
This package is auto-updated.
Last update: 2024-09-14 13:45:38 UTC
README
这是一个轻量级且易于使用的Laravel包,让您以最少的努力管理应用程序中的用户角色和权限。使用此包,您可以使用许多预定义的方法来实现角色和权限,以及分配角色并检查其权限。此包提供了一种简单直观的编码方式,便于与现有应用程序集成。它还内置了中间件,可用于根据用户角色和权限保护路由。无论您是构建小型应用程序还是大规模系统,“Simple Role Permission”都提供了灵活且可扩展的解决方案,用于管理用户角色和权限。对于希望使用简单、轻量级包以实现目标且不增加任何不必要复杂性的开发者来说,它非常理想。
安装
使用包管理器composer安装此包。
composer require raisulhridoy/simplerolepermission
将服务提供者在config/app.php文件中的providers数组中添加如下
RaisulHridoy\SimpleRolePermission\SRPServiceProvider::class,
发布包配置
php artisan vendor:publish --provider="RaisulHridoy\SimpleRolePermission\SRPServiceProvider"
在".env"文件中指定对应角色和权限功能的表名。默认情况下,它将是'users',并在该表中添加"role_id"列。
ROLE_WITH_TABLE=
例如,如果您想使用"admins"表来实现角色功能,那么您必须在".env"文件中指定如下。
ROLE_WITH_TABLE=admins
运行以下命令以清除缓存并迁移数据库。
php artisan config:clear php artisan cache:clear php artisan migrate
基本用法
# Initialize the namespace use RaisulHridoy\SimpleRolePermission\Http\App\SRP;
创建新角色
# Create a new role with name 'admin' SRP::createRole('Admin'); # Can also be catch response as $response = SRP::createRole('Admin'); # Response will be like $response = [ 'status' => 'success', 'message' => 'Role created successfully', 'data' => [ 'id' => 1, // this is the role-ID will be the primary-key 'name' => 'Admin', 'slug' => 'admin', 'identifier' => 569832, ] ];
删除角色
# Remove an existing role with role-ID like example below SRP::deleteRole(1); # Can also catch response as $response = SRP::deleteRole(1);
更新角色
# update role by adding params role-ID & role-name like example below SRP::updateRole(1,'Admin'); # Can also catch response as $response = SRP::updateRole(1,'Admin');
查看所有角色
# Get all roles from database without paginate $response = SRP::allRoles(); # Get all roles with paginate by adding params $response = SRP::allRoles(10);
查看所有权限
# Get all permissions from database without paginate $response = SRP::allPermissions(); # Get all permissions with paginate by adding params $response = SRP::allPermissions(10);
同步角色的权限
# Update permissions for a specific role by role-ID & array of permission-ID as params SRP::syncPermission(1, [2,3,4]);
为用户分配权限
# Get assigned permissions details collection by role-ID in param $response = SRP::assignedPermissions(1); # Get assigned permissions details collection as group by role-ID in param $response = SRP::assignedPermissionsGroup(1); # Get assigned permissions-ID as array by role-ID in param $response = SRP::assignedPermissionIDs(1);
创建新权限
# Create new permission by adding permission-name in param like below SRP::createPermission('Permission Name'); # Create new permission with group by adding extra param like below SRP::createPermission('Permission Name','Permission Group');
更新权限
# Update permission by adding permission-ID, permission-name in param like below SRP::updatePermission(1,'Permission Name'); # Create new permission with group by adding extra param like below SRP::updatePermission(1,'Permission Name','Permission Group');
删除权限
# Remove a permission by adding permission-ID in param like below SRP::deletePermission(1);
检查用户访问权限
# Checking accessibility with permission-name & role-ID SRP::checkPermissionByName('Permission Name',1); # Checking accessibility with permission-ID & role-ID SRP::checkPermissionByID(2,1);
在Blade中检查用户访问权限
# Checking accessibility with blade directive with param role name or role slug & permission name or permission group like below @cando('Admin','Dashboard') @endcando
贡献
欢迎拉取请求。对于重大更改,请首先打开一个问题以讨论您想更改的内容。
请确保适当地更新测试。
许可协议
MIT许可协议
版权(c)2023 || 开发者Raisul Islam Hridoy
在此,免费许可任何获得此软件及其相关文档文件(“软件”)副本的人(“任何人”),以无限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许获得软件的人这样做,但受以下条件约束:
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
本软件按照“原样”提供,不提供任何形式的保证,无论是明示还是暗示,包括但不限于适销性、特定用途的适用性和非侵权性。在任何情况下,作者或版权所有者不应对任何索赔、损害或其他责任承担责任,无论这些责任是由于合同、侵权或其他方式引起的,也不论这些责任是否与软件或其使用或其他软件的处置有关。