大牛 / 权限处理器
v3.1.1
2019-02-11 22:27 UTC
Requires
- doctrine/annotations: 1.4.*
- doctrine/inflector: ^1.2
Requires (Dev)
- mockery/mockery: ^1.0
- monolog/monolog: ^1.22
- orchestra/testbench: ~3.3.0|~3.4.2|~3.5.0
- phpunit/phpunit: ^5.7|6.2
This package is auto-updated.
Last update: 2024-09-12 11:07:57 UTC
README
Permissions-handler 是一个易于使用的 Laravel 5 包,用于以简单且吸引人的方式管理用户角色和权限。
特性
缓存
权限处理器在两个级别上使用缓存功能。
- 数据库缓存:
权限处理器使用配置在您的cache.php
文件中的缓存驱动程序来缓存用户权限、角色,并可在配置的时间内进行缓存。 - 注释缓存:
由于解析文件与注释的成本较高;权限处理器缓存解析的注释以避免再次解析。默认情况下,此功能在开发环境中禁用,在生产环境中启用。
权限门 集成
PermissionsHandler 将用户权限注册到 Gate
中,因此您可以轻松使用 Laravel 内置的 can
方法。
守卫支持
权限处理器不依赖于特定的模型或守卫,您可以使用所需的任何模型或守卫,权限处理器将处理所有。
种子
如果您从 config/permissionsHandler.php
文件中启用了 seeder
选项,那么权限处理器将保存每个创建的权限、角色和角色权限到文件中,以便可以在以后的时间重新种子或与他人共享。
注释
权限处理器具有一个可选的强大功能 注释,它基于 Doctrine\Annotations。您可以使用如下方式
use PermissionsHandler\Owns;
use PermissionsHandler\Roles;
use PermissionsHandler\Permissions;
.
.
.
/**
* @Permissions({"add-posts"})
*/
function store(Request $request) {
// your code here
}
/**
* @Roles({"admin"})
*/
function delete(Request $request) {
// your code here
}
/**
* @Owns(relation="posts", parameter="id")
*/
function update(Request $request) {
// your code here
}
如上例所示,权限处理器提供了三种类型的注释。
Permissions({"perm1"})
:
只有具有 perm1 权限的用户才能访问此方法Roles({"role1"})
:
只有具有 role1 角色的用户才能访问此方法Owns(relation="posts", parameter="id")
:
例如,如果您是帖子的所有者,那么只有您才能编辑此帖子。Owns
将确保这一点,只需传递关系和参数,PermissionsHandler 将根据相应地从 Request 获取值。
请参阅 使用 部分,了解更多功能和详细信息。
许可证
感谢 Ahmed Sorour <3