raisulhridoy/simplerolepermission

这是一个轻量级且易于使用的Laravel包,让您以最少的努力管理应用程序中的用户角色和权限。使用此包,您可以使用许多预定义的方法来实现角色和权限,以及分配角色并检查其权限。此包提供了一种简单直观的编码方式,便于与现有应用程序集成。它还内置了中间件,可用于根据用户角色和权限保护路由。无论您是构建小型应用程序还是大规模系统,“Simple Role Permission”都提供了灵活且可扩展的解决方案,用于管理用户角色和权限。对于希望使用简单、轻量级包以实现目标且不增加任何不必要复杂性的开发者来说,它非常理想。

v1.0.0 2023-02-23 10:25 UTC

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

在此,免费许可任何获得此软件及其相关文档文件(“软件”)副本的人(“任何人”),以无限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许获得软件的人这样做,但受以下条件约束:

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

本软件按照“原样”提供,不提供任何形式的保证,无论是明示还是暗示,包括但不限于适销性、特定用途的适用性和非侵权性。在任何情况下,作者或版权所有者不应对任何索赔、损害或其他责任承担责任,无论这些责任是由于合同、侵权或其他方式引起的,也不论这些责任是否与软件或其使用或其他软件的处置有关。

出版者

拉苏尔·赫里多伊

邮箱:raisulhridoy@hotmail.com
电话:(+880)-1686-851584