feat(database): 添加用户角色权限系统及相关监控功能

- 创建用户表(users)包含基本信息和认证字段
- 创建角色表(roles)用于权限控制
- 创建权限表(permissions)定义系统权限
- 创建用户角色关联表(user_roles)建立用户与角色关系
- 创建角色权限关联表(role_permissions)建立角色与权限关系
- 创建迁移记录表(migrations)追踪数据库变更
- 添加AdminController提供管理员面板功能
- 实现系统监控、配置管理、缓存清理等功能
- 添加AOP切面编程支持的各种通知类型
- 实现告警管理AlertManager支持多渠道告警
- 添加文档注解接口规范
This commit is contained in:
Lawson
2026-04-08 17:00:28 +08:00
commit 2782d765fb
270 changed files with 107192 additions and 0 deletions

View File

@@ -0,0 +1,121 @@
<?php
declare(strict_types=1);
use Fendx\Database\Seeder\Seeder;
use Fendx\Database\Connection\DB;
/**
* 角色权限关联种子数据
*/
class RolePermissionSeeder extends Seeder
{
public function run(): void
{
// 获取角色和权限ID
$roles = DB::table('roles')->pluck('id', 'name')->toArray();
$permissions = DB::table('permissions')->pluck('id', 'name')->toArray();
$rolePermissions = [];
// 超级管理员拥有所有权限
if (isset($roles['super_admin'])) {
foreach ($permissions as $permissionId) {
$rolePermissions[] = [
'role_id' => $roles['super_admin'],
'permission_id' => $permissionId,
'guard_name' => 'web',
'created_at' => date('Y-m-d H:i:s'),
];
}
}
// 管理员权限(除了系统管理中的敏感权限)
if (isset($roles['admin'])) {
$adminPermissions = [
'user.list', 'user.create', 'user.edit', 'user.view',
'role.list', 'role.create', 'role.edit', 'role.assign',
'permission.list', 'permission.edit',
'content.list', 'content.create', 'content.edit', 'content.publish', 'content.audit',
'system.log', 'system.monitor',
'api.access', 'api.create', 'api.update',
];
foreach ($adminPermissions as $permissionName) {
if (isset($permissions[$permissionName])) {
$rolePermissions[] = [
'role_id' => $roles['admin'],
'permission_id' => $permissions[$permissionName],
'guard_name' => 'web',
'created_at' => date('Y-m-d H:i:s'),
];
}
}
}
// 版主权限(内容管理相关)
if (isset($roles['moderator'])) {
$moderatorPermissions = [
'user.list', 'user.view',
'content.list', 'content.create', 'content.edit', 'content.audit',
'api.access',
];
foreach ($moderatorPermissions as $permissionName) {
if (isset($permissions[$permissionName])) {
$rolePermissions[] = [
'role_id' => $roles['moderator'],
'permission_id' => $permissions[$permissionName],
'guard_name' => 'web',
'created_at' => date('Y-m-d H:i:s'),
];
}
}
}
// 普通用户权限(基础权限)
if (isset($roles['user'])) {
$userPermissions = [
'user.view', // 查看自己的信息
'content.list', 'content.create', 'content.edit', // 内容管理
'api.access', // API访问
];
foreach ($userPermissions as $permissionName) {
if (isset($permissions[$permissionName])) {
$rolePermissions[] = [
'role_id' => $roles['user'],
'permission_id' => $permissions[$permissionName],
'guard_name' => 'web',
'created_at' => date('Y-m-d H:i:s'),
];
}
}
}
// 访客权限(最基础的权限)
if (isset($roles['guest'])) {
$guestPermissions = [
'content.list', // 查看公开内容
'api.access', // 基础API访问
];
foreach ($guestPermissions as $permissionName) {
if (isset($permissions[$permissionName])) {
$rolePermissions[] = [
'role_id' => $roles['guest'],
'permission_id' => $permissions[$permissionName],
'guard_name' => 'web',
'created_at' => date('Y-m-d H:i:s'),
];
}
}
}
// 批量插入角色权限关联
if (!empty($rolePermissions)) {
DB::table('role_permissions')->insert($rolePermissions);
}
$this->command->info('角色权限关联种子数据插入完成');
}
}