12/08/2018, 14:22

Cài đặt ENTRUST (Laravel 5 Package)

Cài đặt và sử dụng ENTRUST (Laravel 5 Package) Entrust là một package hỗ trợ cho việc authentication một cách dễ dàng hơn với việc chúng ta phải tạo ra các bảng và các phương thức phức tạp. Entrust đã hỗ trợ chúng ta điều này. Và bây giời chúng ta bắt đầu ...

Cài đặt và sử dụng ENTRUST (Laravel 5 Package)

Entrust là một package hỗ trợ cho việc authentication một cách dễ dàng hơn với việc chúng ta phải tạo ra các bảng và các phương thức phức tạp.

Entrust đã hỗ trợ chúng ta điều này. Và bây giời chúng ta bắt đầu cài đặt thôi nào.

  • Dầu tiên chúng ta hãy thêm dòng này vào mục require-dev trong file composer.json : "zizaco/entrust": "5.2.x-dev"

  • Sau đó chạy lệnh composer update

  • Mở file onfig/app.php và thêm vào mục providers và aliases

      ZizacoEntrustEntrustServiceProvider::class,
      'Entrust'   => ZizacoEntrustEntrustFacade::class,
    
  • Tiếp theo chạy lệnh php artisan vendor:publish để public các file cấu hình trong file config/entrust.php

  • Mở file config/auth.php và chỉnh sửa đoạn code :

      'providers' => [
          'users' => [
              'driver' => 'eloquent',
              'model' => NamespaceOfYourUserModelUser::class,
              'table' => 'users',
          ],
      ],
    

Trong đó table sẽ là đường dẫn đến model các bạn muốn. Ở đây mình sẽ lấy là : AppModelsUser.

Và tất nhiên nếu các bạn muốn dùng thêm cái middleware thì entrust cũng hỗ trợ sãn. Việc các bạn phải làm là thêm vào file app/Http/Kernel.php. như sau :

'role' => izacoEntrustMiddlewareEntrustRole::class,
'permission' => izacoEntrustMiddlewareEntrustPermission::class,
'ability' => izacoEntrustMiddlewareEntrustAbility::class,

Đến đây việc cài đặt cơ bản đã hoàn thành. Bây giờ chúng ta hãy chạy lệnh php artisan entrust:migration để tạo migration.

Vào databasemigrateions kiểm tra _entrust_setup_tables.php. Chạy lệnh php artisan migrate. Việc chạy lệnh này sẽ tạo ra 4 bảng gồm :

  • roles — lưu role record
  • permissions — lưu permission record
  • role_user — bản này sẽ có quan hệ many-to-many với bản roles và bản users
  • permission_role — bản này sẽ có quan hệ many-to-many giữa bản roles và bản permissions

Tạo Role model theo đường dẫn app/models/Role.php :

    <?php namespace App;

    use ZizacoEntrustEntrustRole;

    class Role extends EntrustRole
    {
    }

Permission

Tạo Permission model theo đường dẫn app/models/Permission.php :

<?php namespace App;

use ZizacoEntrustEntrustPermission;

class Permission extends EntrustPermission
{
}

User

Tiếp theo, thêm vào dòng này ở User model của bạn use EntrustUserTrait;

<?php

use ZizacoEntrustTraitsEntrustUserTrait;

class User extends Eloquent
{
    use EntrustUserTrait; // add this trait to your user model

    ...
}

Đây sẽ cho phép eloquent tạo quan hệ với Role và thêm vào các phương thức như : roles(),hasRole($roleName), can($permission), và ability($roles, $permissions, $options).

Và cuối cùng, đừng quên chạy lệnh : composer dump-autoload. Như vậy chúng ta đã cài đặt thành công Entrust. Chúc các bạn thành công.

Tài liệu tham khảo

  • https://github.com/Zizaco/entrust
  • http://tuanphong.net/huong-dan-cai-dat-entrust-package-cho-laravel-4/
0