andheiberg/verify

一个简单的 Laravel 4 认证包。它具有角色、权限、密码散列功能,且可完全扩展。

v2.0.1 2013-05-11 09:14 UTC

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