承接 napp/aclcore 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

napp/aclcore

Composer 安装命令:

composer require napp/aclcore

包简介

ACL core for projects

README 文档

README

Build Status Scrutinizer Code Quality Code Coverage Software License codecov

Roles and Permissions for Laravel optimized for performance. Every permission is registered through code instead of pivot tables. This results in great performance.

Install

composer require napp/aclcore

You can publish the config file with:

php artisan vendor:publish --provider="Napp\Core\Acl\AclServiceProvider" --tag="config"

When published - then review it and change accordingly to your applications. The config files config/acl.php contains:

return [
    /**
     * Define which Eloquent models used by the package
     */
    'models' => [
        'role' => Napp\Core\Acl\Model\Role::class,
        'user' => Illuminate\Foundation\Auth\User::class,
    ],

    /**
     * Table names for the package
     */
    'table_names' => [
        'roles' => 'roles',
        'users_roles' => 'users_roles',
    ],

    /**
     * The default guard used to authorize users
     */
    'guard' => 'web'
];

Usage

Add HasRole trait to your User model:

use Illuminate\Foundation\Auth\User as Authenticatable;
use Napp\Core\Acl\Contract\Role as RoleContract;
use Napp\Core\Acl\Role\HasRole;

class User extends Authenticatable implements RoleContract
{
    use HasRole;
}

Register Permissions

Register simple permissions in your app.

Napp\Core\Acl\PermissionRegistrar::register([
    'users.create', 
    'users.view'
]);

Register permissions with Closure.

Napp\Core\Acl\PermissionRegistrar::register([
    'users.create' => 'My\App\Users\Permissions@create',
    'users.update' => 'My\App\Users\Permissions@edit',
    'users.view'
]);

Register Middleware

Add the middleware to App/Http/Kernal.php

protected $routeMiddleware = [
    'may' => \Napp\Core\Acl\Middleware\Authorize::class,

usage:

Route::get('users', ['uses' => 'UsersController@index'])->middleware('may:users.view');

Usage in php code

// authorize a single permission
if (may('users.view')) {
    // do something
}

// authorize if **any** of the permissions are valid
if (may(['users.view', 'users.create'])) {
    // do something
}

// authorize if **all** of the permissions are valid
if (mayall(['users.view', 'users.create'])) {
    // do something
}

// reverse - not logic
if (maynot('users.view')) {
    return abort();
}

// check for user role
if (has_role($user, 'manager')) {
    // do something
}

// check if user has many roles
if (has_role($user, ['support', 'hr'])) {
    // do something
}

Usage in Blade

may is equivalent to default can from Laravel.

@may('users.create')
    <a href="my-link">Create</a>
@endmay

Check if user has any of the permissions

@may(['users.create', 'users.update'])
    <a href="my-link">Create</a>
@endmay

Check if user have all of the permissions

@mayall(['users.create', 'users.update'])
    <a href="my-link">Create</a>
@endmayall

Use maynot for reverse logic

@maynot('users.create')
    <a href="my-link">Create</a>
@endmaynot

Check if user has a specific role

@hasrole('admin')
    <a href="my-link">Create</a>
@endhasrole

See PHPUnit tests for more examples and usage.

统计信息

  • 总下载量: 1.32k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 3
  • 点击次数: 7
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 3
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2018-09-04

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固