t3chnik/verify-l4-mongolid

Laravel 4 简单的认证包。它具有角色、权限、密码加盐功能,并且可以完全扩展。

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

This package is not auto-updated.

Last update: 2024-09-23 13:26:02 UTC


README

Laravel 4 的简单角色/权限认证包

  • 使用盐加密的密码存储
  • 基于角色/权限的认证
  • 智能处理错误的异常
  • 可配置/可扩展

安装

将 Verify 添加到您的 composer.json 文件中

"require": {
	"toddish/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 的数据库表设置前缀,还可以更改 'db_prefix' 的值

迁移

现在迁移 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