大牛/权限处理器

v3.1.1 2019-02-11 22:27 UTC

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 获取值。

请参阅 使用 部分,了解更多功能和详细信息。

许可证

MIT 许可证

感谢 Ahmed Sorour <3