sashsvamir/laravel-user-crud

Laravel 的用户模型 CRUD 实现

dev-master 2022-03-27 07:16 UTC

This package is auto-updated.

Last update: 2024-08-27 12:36:25 UTC


README

此扩展改进了用户模型,添加了控制台命令和页面(CRUD)来管理用户。

设置

发布并运行迁移以更新 users

artisan vendor:publish --tag=user-crud-migrations
artisan migrate

注意:将添加以下列:roles, notify, notify-spam

如果您之前已重命名用户表,可以在配置中设置新名称,但首先必须发布 config/user-crud.php 配置

artisan vendor:publish --tag=user-crud-config

... 并设置新用户表名称

return [
    'users_table' => 'newname',
];

接下来,将特质 UserNotifyTraitUserRolesTrait 和实现 HasRolesInterface 添加到 App\Model\User

class Model implements HasRolesInterface {
    use UserNotifyTrait, UserRolesTrait;
    ...
}

您还可以定义自己的角色

class Model implements HasRolesInterface {
    const ROLE_MANAGER = 'manager';
    public static function getAvailableRoles(): array {
        return [
            self::ROLE_ADMIN,
            self::ROLE_MODERATOR,
            self::ROLE_MANAGER,
        ];
    }
}

命令

现在,您可以使用以下 artisan 命令来管理用户

artisan user:add
artisan user:change-password
artisan user:list
artisan user:notify
artisan user:notify-spam
artisan user:remove
artisan user:role-add
artisan user:role-remove

权限/角色

现在任何用户都可以拥有以下角色:adminmoderator

您可以检查用户是否具有上述权限(例如,在 blade 视图中)

@can('role-admin')
@can('role-moderator')

还将添加 edit-users 权限,该权限已应用于所有具有 admin 角色的用户。要检查这一点,请使用以下方法

@can('user-edit')

路由

警告:以下部分仅与特定的 blade 组件(尚未发布)兼容,并使用 bootstrap5 样式。

扩展添加了页面路由来管理用户(CRUD),您可以通过 URL /admin/user 访问

https://:8080/admin/user

注意:默认情况下,所有 /admin/user/* 网络路由都使用 authcan:edit-users 中间件。

要将用户 CRUD 链接到您的管理员模板中,请添加以下内容(bootstrap5 风格)

@can('edit-users')
    <li class="nav-item">
        <a href="{{ route('admin.user.index') }}" class="nav-link {{ (request()->routeIs('admin.user.*')) ? 'active' : '' }}">Users</a>
    </li>
@endcan

覆盖 blade 模板

要发布 blade 视图文件,请运行

artisan vendor:publish --tag=user-crud-views