lazywe/lazy-admin

基于laravel的rbac后台系统

Downloads

101

Stars

10

Version

3.5.58

lazy-admin

  • 基于laravel的rbac后台系统

Requirement

  • php >= 7.0
  • Composer
  • laravel >= 5.8
  • spatie/laravel-permission

demo

admin admin_menu

Installation

First

    $ composer require lazywe/lazy-admin -vvv

Second

  • 修改config/auth.php
    // guards 新增如下
    'lazy-admin' => [
        'driver'   => 'session',
        'provider' => 'lazy-admin',
    ]

    // providers新增如下
    'lazy-admin' => [
        'driver' => 'eloquent',
        'model'  => Lazy\Admin\Models\AdminUser::class
    ]
  • 注意

若mysql版本小于5.7.7 需要修改AppServiceProvider

新增如下

use Illuminate\Support\ServiceProvider;

boot方法新增如下

Schema::defaultStringLength(191);

注意修改数据库配置

Third

  • 生成配置文件命令如下
    $ php7 artisan lazy-admin:install
  • 若自定义connection 可修改config/lazy-admin.conf 文件中的 connection
  • 生成数据库命令如下
    $ php7 artisan lazy-admin:db

Usage

  • 打开地址 http://localhost/admin
  • 用户名 [email protected]
  • 密码 123456
  • 注意:
  • 后台入口前缀可以更改lazy-admin.prefix
  • 所有后台路由需要使用route()方法,否则后台路由 前缀 可能无法动态更换

新功能的路由规则

  • 权限验证中间件 lazy-admin

  • 注意:所有需要权限验证的路由需要使用lazy-admin中间件,否则...

  • 参考:App\Providers\RouteServiceProvider::class 文件新增如下

<?php
    //... 

    /**
     * Define the routes for the application.
     */
    public function map()
    {
        //...
        //加载后台权限组
        $this->mapAdminRoutes();
    }
    
    /**
     * 加载后台权限组
     */
    protected function mapAdminRoutes()
    {
        Route::prefix(config('lazy-admin.prefix'))
            ->middleware('web', 'lazy-admin')
            ->namespace(sprintf("%s\Admin", $this->namespace)) 
            ->group(function ($router) {
                // 后台路由文件在routes下的admin目录下 路由文件分组
                foreach (glob(base_path('routes/admin') . '/*.php') as $file) {
                    $router->group([], $file);
                }
            });
    }

    // ...

路由权限遵循 larave-premission

    // 控制角色 多个 |隔开
    Route::group(['middleware' => ['role:administrator']], function () {
        //...
    });

    // 控制权限 多个 |隔开
    Route::group(['middleware' => ['permission:user-create']], function () {
        //...
    });
    // 控制角色 多个|隔开 + 控制权限 多个|隔开
    Route::group(['middleware' => ['role:administrator','permission:user-create']], function () {
        // ...
    });
    // 控制角色 或者 控制权限 多个|隔开
    Route::group(['middleware' => ['role_or_permission:administrator|user-create']], function () {
        //...
    });

模版权限

  • 权限认证
    @lazy_can('user-create')
        // ...
    @else_lazy_can('user-all-create')
        // ...
    @end_lazy_can
  • 用户组权限认证
    @lazy_role('administrator')
        // ...
    @else_lazy_role('editor')
        // ...
    @else_lazy_role
  • 用户组权限认证 满足任一角色通过
    @lazy_hasanyrole('administrator|editor')
        // ...
    @else
        // ...
    @end_lazy_hasanyrole
  • 用户组权限认证 满足所有角色通过
    @lazy_hasallroles('administrator|editor')
        // ...
    @else
        // ...
    @end_lazy_hasallroles
  • 用户组权限认证 不满足当前角色通过
    @lazy_unlessrole('administrator')
        // ...
    @else
        // ...
    @end_lazy_unlessrole

模版 layout

  • 后台公用layout
    // layout
    @extends('lazy-view::layout')
    @section('content')
    // ... 自定义html
    @endsection

    // css stack
    @push('css')
        // ... css
    @endpush

    // js stack
    @push('scripts')
        // ... 自定义
    @endpush
  • 模版其他详细功能建议看resources
lazywe

Author

lazywe