hchs / judge

此软件包最新版本(0.2.3)没有可用的许可证信息。

Laravel中处理角色和权限

0.2.3 2017-01-17 06:03 UTC

This package is not auto-updated.

Last update: 2024-09-28 18:21:26 UTC


README

用于在Laravel中管理角色和权限的Composer软件包。

简介

  • 80% 完成
  • 版本 0.21

功能

  1. 在多种用户模型(Authcatible Model)中管理角色和权限。
  2. 创建、赋予、删除、删除和检查权限。
  3. 创建、赋予、删除、删除和检查角色。

链接

DEMO

  • 尚未

如何使用

安装

1.composer require

	$ composer require hchs/judge       

2.在config/app.php中添加服务提供者

	Hchs\Judge\JudgeServiceProvider::class    

3.运行 vendor:publish

	$ php artisan vendor:publish --tag=migrations    

	$ php artisan vendor:publish --tag=config    

	// optional
	$ php artisan vendor:publish --tag=tests    

4.修改配置文件config/judge.php

'models' => [
	'users' => 'App\User',  // set relation and namespace
	'fakeusers' => 'Hchs\Judge\Permission\FakeUser', // only for testing
]    

5.认证模型继承Judge抽象类

	<?php

	namespace App;

	use Illuminate\Notifications\Notifiable;
	use Hchs\Judge\Permission\AuthEloquent as Authenticatable;

	class User extends Authenticatable
	{
	    use Notifiable;

	    /**
	     * The attributes that are mass assignable.
	     *
	     * @var array
	     */
	    protected $fillable = [
		'name', 'email', 'password',
	    ];

	    /**
	     * The attributes that should be hidden for arrays.
	     *
	     * @var array
	     */
	    protected $hidden = [
		'password', 'remember_token',
	    ];
	}

基本用法

	// use Role && Permission
	use Hchs\Judge\Permission\Role;
	use Hchs\Judge\Permission\Permission;

	// create Role & Permission
	$role = Role::create([
		    'name' => 'admin',
		    'display_name' => 'Admin',
		    'description' => 'You are Admin'
	]);
	$permission = Permission::create([
		    'name' => 'create',
		    'display_name' => 'Create Something',
		    'description' => 'You can create something',
	]);
	// Role attachPermission
	$role->attachPermission($permission);

	$user = User::find(1);

	// attachRole
	$user->attachRole($role);

	$user->hasRole('admin');  //true
	$user->hasRole('basic');  //false
	$user->hasPermission('create'); //true
	$user->hasPermission('delete'); //false

	// detachRole
	$user->detachRole($role);

	$user->hasRole('admin');  //false
	$user->hasRole('basic');  //false
	$user->hasPermission('create'); //false
	$user->hasPermission('delete'); //false