andheiberg / verify
一个简单的 Laravel 4 认证包。它具有角色、权限、密码散列功能,且可完全扩展。
v2.0.1
2013-05-11 09:14 UTC
Requires
- php: >=5.3.0
- illuminate/support: 4.0.x
This package is not auto-updated.
Last update: 2024-09-23 13:42:59 UTC
README
一个简单的 Laravel 4 角色权限认证包
- 基于角色/权限的认证
- 智能处理错误的异常
- 可配置/可扩展
安装
将 Verify 添加到 composer.json 文件中
"require": {
"andheiberg/verify": "2.0.*"
}
现在,从项目的根目录运行命令行上的 composer update
composer update
注册包
将 Verify 服务提供者添加到 app/config/app.php
中的配置
'providers' => array( 'Toddish\Verify\VerifyServiceProvider' ),
更改驱动程序
然后在 app/config/auth.php
中将您的 Auth 驱动程序更改为 'verify'
'driver' => 'verify',
如果您想在调用 Auth::user()
时加载 Verify 的 User 模型,也可以将 'model'
值更改为 'Toddish\Verify\Models\User'
或者,您可以直接创建自己的 User 模型,并扩展 Verify 的模型
use Toddish\Verify\Models\User as VerifyUser; class User extends VerifyUser { // Code }
发布配置
从项目根目录的命令行运行此命令
php artisan config:publish toddish/verify
这将发布 Verify 的配置到 app/config/packages/toddish/verify/
迁移
现在迁移 Verify 的数据库表。从项目根目录的命令行运行此命令
php artisan migrate --package="toddish/verify"
现在您应该已经导入了所有表,包括一个名为 admin 的示例用户,密码为 password
用法
该包设计得很轻量。您像添加其他模型一样添加用户、角色和权限。
$user = new Toddish\Verify\Models\User; $role = new Toddish\Verify\Models\Role; $permission = new Toddish\Verify\Models\Permission;
等等。
所有模型都在命名空间 'Toddish\Verify\Models' 中。
关系如下
- 角色属于用户且与用户有多个关系
- 用户属于角色且与角色有多个关系
- 角色属于权限且与权限有多个关系
- 权限属于角色且与角色有多个关系
关系也通过 Eloquent ORM 处理
$role->permissions()->sync(array($permission->id, $permission2->id));
有关关系的更多信息,请参阅 Laravel 4 Eloquent 文档
基本示例
// Create a new Permission $permission = new Toddish\Verify\Models\Permission; $permission->name = 'delete_user'; $permission->save(); // Create a new Role $role = new Toddish\Verify\Models\Role; $role->name = 'Moderator'; $role->level = 7; $role->save(); // Assign the Permission to the Role $role->permissions()->sync(array($permission->id)); // Create a new User $user = new Toddish\Verify\Models\User; $user->username = 'Todd'; $user->email = 'todd@toddish.co.uk'; $user->password = 'password'; // This is automatically salted and encrypted $user->save(); // Assign the Role to the User $user->roles()->sync(array($role->id)); // Using the public methods available on the User object var_dump($user->is('Moderator')); // true var_dump($user->is('Admin')); // false var_dump($user->can('delete_user')); // true var_dump($user->can('add_user')); // false var_dump($user->level(7)); // true var_dump($user->level(5, '<=')); // false
文档
有关完整文档,请参阅 http://docs.toddish.co.uk/verify-l4