hchs/judge

There is no license information available for the latest version (0.2.3) of this package.

Handle Role and Permission in Laravel

0.2.3 2017-01-17 06:03 UTC

This package is not auto-updated.

Last update: 2025-04-26 21:06:40 UTC


README

Composer Package for Manage Roles and Permissions in Laravel.

Introduction

  • 80% complete
  • Version 0.21

Features

  1. Manage Role and Permission in different kinds of User Models (Authcatible Model).
  2. Create, Given, Remove, Delete and Check Permission.
  3. Create, Given, Remove, Delete and Check Role.

Links

DEMO

  • Notyet

How To Use

Install

1.composer require

	$ composer require hchs/judge       

2.add Service Provider in config/app.php

	Hchs\Judge\JudgeServiceProvider::class    

3.run vendor:publish

	$ php artisan vendor:publish --tag=migrations    

	$ php artisan vendor:publish --tag=config    

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

4.modify config file config/judge.php

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

5.Auth Model extends Judge Abstract Class

	<?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',
	    ];
	}

Basic Usage

	// 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