mvd81/laravel-is-admin

Laravel 包,用于设置用户为管理员,无需复杂的角色系统

v2.0 2022-03-02 11:28 UTC

This package is auto-updated.

Last update: 2024-09-13 17:20:26 UTC


README

Latest Version on Packagist Build Status

简介

Laravel 包,用于扩展您的 Laravel 应用程序,增加简单的管理员权限功能,包括:

  • 迁移文件,用于设置用户为管理员
  • 中间件
  • Blade 指令
  • Artisan 命令,用于查看谁是谁的管理员
  • 可以将用户 ID 为 1 的用户设置为超级管理员

要求

Laravel 8 或更高版本

安装

  1. composer require mvd81/laravel-is-admin

  2. 运行 php artisan migrate 以在 users 表中创建 'is_admin' 列

  3. 在用户模型中导入该特质

use Mvd81\LaravelIsAdmin\Traits\isAdmin;
  1. 在用户模型中使用该特质
class User extends Authenticatable
{
    use isAdmin;
    ...

如何使用

您可以通过将数据库表中 usersis_admin 列设置为 1 来将“普通”用户设置为管理员。

或在代码中

设置管理员

$user = User::find(ID);
$user->makeAdmin(); 

撤销管理员

$user = User::find(ID);
$user->undoAdmin(); 

超级管理员

您可以使用 ID 为 1 的用户作为管理员,而无需将 'is_admin' 列设置为 1。
首先您需要发布配置文件。

  • php artisan vendor:publish
  • 选择选项:提供者:Mvd81\LaravelIsAdmin\LaravelIsAdminServiceProvider

现在在 config/is_admin.php 中将 'use_super_admin' 设置为 true。

'use_super_admin' => true,

中间件

有一个 IsAdmin 中间件可用于您的路由。

示例

Route::get('admin-page')->middleware('IsAdmin'); 

Blade 指令

您的 Blade 视图文件中的部分模板/布局仅对管理员可见?
您可以使用这个 Blade 指令

@isAdmin()
    I am an admin
@endisAdmin

谁是谁的管理员?

您可以通过 artisan 命令来查看谁是谁的管理员。

php artisan command:isAdmin

卸载

  1. composer remove mvd81/laravel-is-admin
  2. 删除配置文件 config/is_admin.php
  3. 删除表 users 中的数据库 is_admin
  4. 如果使用了 blade @isAdmin() 指令,请删除它们
  5. 从您的路由中删除 is_admin 中间件