:::

5-1 安裝後台的使用者角色管理

一、安裝backpack/permissionmanage

  1. 前面的基礎都是為了建立使用者的角色管理機制
  2. 官網:https://github.com/Laravel-Backpack/PermissionManager
  3. 安裝backpack/permissionmanager:
    composer require backpack/permissionmanager
  4. 建立設定檔:

    php artisan vendor:publish --provider="Backpack\PermissionManager\PermissionManagerServiceProvider"
  5. 建立資料表:

    php artisan migrate
  6. 請修改/專案/app/User.php加上以下程式,如此,權限機制才能正常使用:

    <?php
    
    namespace App;
    
    use Backpack\CRUD\CrudTrait;
    use Illuminate\Foundation\Auth\User as Authenticatable;
    use Illuminate\Notifications\Notifiable;
    use Spatie\Permission\Traits\HasRoles;
    
    class User extends Authenticatable
    {
        use Notifiable;
        use CrudTrait;
        use HasRoles;
        /**
         * The attributes that are mass assignable.
         *
         * @var array
         */
  7. 接著修改/專案/config/auth.php,把原本的使用者資料模型換成此套件的使用者資料模型

    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model'  => Backpack\Base\app\Models\BackpackUser::class,
        ],
    
        // 'users' => [
        //     'driver' => 'database',
        //     'table' => 'users',
        // ],
    ],
  8. 修改 /專案/resources/views/vendor/backpack/base/inc/sidebar_content.blade.php 加入權限管理選項

    <!-- Users, Roles Permissions -->
    <li class="treeview">
      <a href="#"><i class="fa fa-group"></i> <span>使用者角色權限管理</span> <i class="fa fa-angle-left pull-right"></i></a>
      <ul class="treeview-menu">
        <li><a href="{{ url(config('backpack.base.route_prefix', 'admin') . '/user') }}"><i class="fa fa-user"></i> <span>使用者</span></a></li>
        <li><a href="{{ url(config('backpack.base.route_prefix', 'admin') . '/role') }}"><i class="fa fa-group"></i> <span>角色</span></a></li>
        <li><a href="{{ url(config('backpack.base.route_prefix', 'admin') . '/permission') }}"><i class="fa fa-key"></i> <span>權限</span></a></li>
      </ul>
    </li>
  9. 最後直接下載中文語系解壓縮到\專案\resources\lang\vendor\backpack中,然後解壓縮覆蓋!這樣日後若升級套件,加入的中文語系才不會又消失。

二、建立身份及權限

  1. 「角色」部份可以先新增「管理員」、「教師」及「學生」三個角色
  2. 「權限」部份可以先新增「後台管理」、「建立測驗」及「進行測驗」
    • 「管理員」分別綁定「後台管理」及「建立測驗」兩個權限
    • 「教師」綁定「建立測驗」權限
    • 「學生」綁定「進行測驗」權限
  3. 記得先將自己的帳號加入「管理員」(密碼有要改變才需要填,否則留空即可),另外記得到「使用者」建立一個老師及學生帳號以便測試。

三、修改選單

  1. 為了方便連結,我們可以修改\專案\resources\views\layouts\nav.blade.php的樣板檔,加入自製選項,由於只開放管理員進到後台,所以,利用@role('管理員')@endrole來進行身份判斷。:

    ...略...
    @else
        @section('my_menu')
            @role('管理員')
            <li><a class="nav-link" href="/admin">{{ __('Admin') }}</a></li>
            @endrole
        @show
    ...略...
  2. 然後,編輯一下\專案\resources\lang\zh-TW.json語系檔

    {
        "Login": "登入",
        //....略...
        "Admin":"後台管理"
    }
  3. 如此,就有方便的連結可以按了。

  4. 詳情可見:https://github.com/laravel-backpack/permissionmanager#using-blade-directives

到GitHub觀看此單元程式異動  


:::

書籍目錄

展開 | 闔起

http%3A%2F%2Fcampus-xoops.tn.edu.tw%2Fmodules%2Ftad_book3%2Fpage.php%3Ftbdsn%3D1155

計數器

今天: 3533353335333533
昨天: 3438343834383438
總計: 7393862739386273938627393862739386273938627393862