sorora / aurp
Aurp - Laravel 4 中用户、角色和权限的认证
Requires
- php: >=5.3.0
- illuminate/support: <4.2
- sorora/empower: dev-master
Requires (Dev)
- mockery/mockery: dev-master
- way/laravel-test-helpers: dev-master
This package is not auto-updated.
Last update: 2018-07-08 11:14:27 UTC
README
此软件包不再维护,市面上有很多针对 Laravel 的替代方案,它们都能做得很好。
Aurp 是什么?
Aurp 是用户、角色和权限的认证。它提供了以下功能
- 接口来执行以下操作(视图可以替换为您自己的)
- "Aurp" 类可用于确定用户是否可以执行权限或权限。它还可以用于确定用户是否无法执行权限或权限。它甚至可以用于确定用户是否是某个角色!太棒了,不是吗?
简而言之,它为您的 Laravel 安装添加了接口(可以自定义),允许管理用户、角色和权限。还提供了登录和注销功能。这意味着一旦安装,您就无需编写任何代码!
要求
此软件包是为 Laravel 4 创建的,并使用 Auth 类来减少重复。
它还需要 sorora/empower 软件包,这将在运行 composer update 时安装。
此软件包仅用于检查用户是否有特定的权限或角色,更多信息可以在 使用说明 部分找到。
安装
您可以通过 composer 安装此软件包,将以下内容添加到您的 composer.json 文件中
"sorora/aurp" : "dev-master"
通过 composer 安装软件包后,请参阅 此处 以一键发布配置/迁移!
注意:您还需要将
'Sorora\Aurp\Providers\AurpServiceProvider'添加到您的app/config/app.php文件中的providers数组
配置选项
可定制视图
要查看如何自定义此包中使用的视图/布局,请参阅Empower包的README,点击这里
God Mode
Aurp的config.php中的godmode选项指定了哪个角色拥有执行所有操作、忽略所有权限的权力。默认设置为超级管理员,但可以根据需要进行更改。
登录/注销前缀
默认情况下,登录和注销路由分别通过yoursite.com/login和yoursite.com/logout访问。要在这些路由之前添加段,只需更改Aurps的config.php文件中的prefix选项。默认设置为false,表示不向路由前添加段。
使用方法
安装包、发布配置和迁移表后,您可以通过/login(假设您没有添加路由)登录到管理面板。提供了一个默认用户admin@admin.com和密码为password,登录后请务必更改密码。
登录后,您应该位于管理面板的主页(确保您已将'aurp' => 'layouts.nav'添加到Empowers的externals config.php选项),您将看到一个可以执行的操作的导航列表。
Aurp
Aurp可以通过以下任一命令从您的应用程序访问
Is
is可用于确定用户是否是特定角色。
示例用法
Aurp::is('Example Role');
Can
can可用于确定用户是否可以执行某些操作。它接受单个字符串或数组。
示例用法
Aurp::can('create_permissions'); // returns true if the user has this permission, false if not.
Aurp::can(array('create_permissions', 'edit_permissions')); // returns true only if the user can do everything in the array
Cannot
cannot用于确定用户是否不能执行某些操作。它接受单个字符串或数组。这是can的逆操作。
示例用法
Aurp::cannot('create_permissions'); // returns true if the user has not got this permission, false if they have.
Aurp::can(array('create_permissions', 'edit_permissions')); // returns true only if the user can not do everything in the array
Magicaurp过滤器
当使用Route::resources时,此过滤器效果非常好——为了证明这一点,我们将其用于此包!让我们看看以下示例
Route::group(array('before' => 'auth|magicaurp', 'prefix' => $baseurl), function () {
Route::resource('permissions', 'Sorora\\Aurp\\Controllers\\PermissionsController');
});
如你所见,我们有两个过滤器。Auth简单地检查他们是否已登录,如果没有,则将他们发送到登录页面。magicaurp检查他们访问的路由,然后确定他们是否有权限访问它。当用于此过滤器时,数据库中的权限结构非常重要。
- 创建项目应具有“create_items”权限任务(与资源控制器方法:create,store匹配)
- 查看(单个和多个)项目应具有“show_items”权限任务(与资源控制器方法:index,show匹配)
- 编辑/修改项目应具有“edit_items”权限任务(与资源控制器方法:edit,update匹配)
- 销毁项目应具有“destroy_items”权限任务(与资源控制器方法:destroy匹配)
因此,对于我们的“permissions”示例,magicaurp访问每部分的权限如下:create_permissions,show_permissions,edit_permissions和destroy_permissions
当用户没有权限通过过滤器时,会抛出一个403。强烈建议您自定义此页面。
403自定义示例
App::error(function ($exception, $code) {
if($code == 403)
{
return 'Sorry, you cannot access this area!';
}
});
有关错误定制的更详细的文章,请参阅这篇博客文章及评论。*
重要提示
如果由于某种原因您要为此包运行测试,请注意它会刷新所有迁移并重新迁移包的迁移到数据库 - 因此请务必注意,数据可能会丢失!