jeroen-g / laravel-auth
此包已被废弃,不再维护。未建议替代包。
laravel认证的一个简单扩展。
v1.0-beta
2014-03-10 22:14 UTC
Requires
- php: >=5.3.0
- illuminate/support: 4.1.*
Requires (Dev)
- orchestra/testbench: 2.1.*
- phpunit/phpunit: 3.7.*
This package is not auto-updated.
Last update: 2022-02-01 12:32:01 UTC
README
仅为Laravel的一个认证包。
安装
将此行添加到您的composer.json
"jeroen-g/laravel-auth": "dev-master"
然后更新Composer
composer update
在app/config/app.php
中添加服务提供者
'JeroenG\LaravelAuth\LaravelAuthServiceProvider',
最后一件要做的事情是将迁移应用到创建用户、角色和权限的表
php artisan migrate --package="jeroen-g/laravel-auth"
使用方法
检查用户是否有权限
if(Auth::can('edit')) { // show a form to edit stuff. }
检查用户是否有角色
if(Auth::is('Moderator')) { // Show a form to edit stuff, if the 'Moderator' role has the 'edit' permission. }
检查用户是否为管理员
要使用此功能,请确保给用户分配“管理员”角色。
Auth::isAdmin();
例如,您可以使用此功能创建一个过滤器来保护您的后端。
Route::filter('auth.admin', function() { if ( ! Auth::isAdmin()) return Redirect::to('login'); });
获取所有可用的角色/权限/用户
Auth::allRoles(); Auth::allPermissions(); Auth::allUsers(); //Example of both optional parameter Auth::allUsers('json', true);
两者都接受两个可选参数,即返回结果的格式:数组、对象或JSON。默认返回数组。第二个参数是一个布尔值,将其设置为true,如果您想包含已删除的项目。
将角色/权限分配给用户
Auth::giveRole('Member', 2); Auth::givePermission('edit', 2);
在这两种情况下,第二个参数是用户ID。这是可选的,如果没有传递,则使用登录用户的ID。
将权限分配给角色
Auth::giveRolePermission('edit', 'Admin');
第一个参数是权限,第二个是角色。要检查角色是否具有特定的权限,可以使用roleCan()
函数。
Auth::roleCan('Admin', 'edit');
从用户/角色中移除角色/权限
Auth::takeRole('Member', 2); Auth::takePermission('edit', 2); Auth::takeRolePermission('edit', 'Admin');
检查角色/权限/用户是否存在
Auth::roleExists('Admin'); Auth::permissionExists('edit'); Auth::userExists(2);
所有三个函数都接受一个第二个参数,即true
或false
,这决定了是否也会使用已删除的条目(已删除的条目是从数据库中软删除的,见下文)。
添加新的角色/权限/用户
// Name, description, level (any number) Auth::addRole('Admin', 'One Role To Rule Them All', 10); // Name, description Auth::addPermission('edit', 'Ability to edit stuff'); // Username, password, email Auth::addUser('Jeroen', 'password123', 'jeroen@example.com');
删除角色/权限/用户
Auth::deleteRole('Moderator'); Auth::deletePermission('edit', true); Auth::deleteUser(2);
所有三个函数都接受第二个参数。这个布尔值表示是否应该使用强制方式删除(默认设置为false)(角色/权限/用户)。软删除(即非强制方式)将不会包含在每次对数据库的请求中(除非另有说明)。然而,它们可以被恢复。