forgetCachedPermissions(); // 定义所有权限 $permissions = [ // 文档管理权限 'document.viewAny' => '查看文档列表', 'document.view' => '查看文档详情', 'document.create' => '创建文档', 'document.update' => '编辑文档', 'document.delete' => '删除文档', 'document.download' => '下载文档', // 系统设置权限 'system-setting.viewAny' => '查看系统设置', 'system-setting.view' => '查看设置详情', 'system-setting.update' => '修改系统设置', // 操作日志权限 'activity-log.viewAny' => '查看操作日志', 'activity-log.view' => '查看日志详情', 'activity-log.export' => '导出日志', // 终端管理权限 'terminal.viewAny' => '查看终端列表', 'terminal.view' => '查看终端详情', 'terminal.create' => '创建终端', 'terminal.update' => '编辑终端', 'terminal.delete' => '删除终端', 'terminal.sync' => '同步终端配置', // SOP模板权限 'sop-template.viewAny' => '查看SOP列表', 'sop-template.view' => '查看SOP详情', 'sop-template.create' => '创建SOP', 'sop-template.update' => '编辑SOP', 'sop-template.delete' => '删除SOP', 'sop-template.publish' => '发布SOP', 'sop-template.archive' => '归档SOP', // 分组管理权限 'group.viewAny' => '查看分组列表', 'group.view' => '查看分组详情', 'group.create' => '创建分组', 'group.update' => '编辑分组', 'group.delete' => '删除分组', // 用户管理权限 'user.viewAny' => '查看用户列表', 'user.view' => '查看用户详情', 'user.create' => '创建用户', 'user.update' => '编辑用户', 'user.delete' => '删除用户', // 角色管理权限 'role.viewAny' => '查看角色列表', 'role.view' => '查看角色详情', 'role.create' => '创建角色', 'role.update' => '编辑角色', 'role.delete' => '删除角色', ]; // 创建所有权限 foreach ($permissions as $name => $description) { Permission::create([ 'name' => $name, 'guard_name' => 'web', ]); } // 创建角色并分配权限 $this->createSuperAdminRole(); $this->createAdminRole(); $this->createUserRole(); } /** * 创建超级管理员角色 */ private function createSuperAdminRole(): void { $role = Role::create([ 'name' => 'super-admin', 'guard_name' => 'web', ]); // 超级管理员拥有所有权限 $role->givePermissionTo(Permission::all()); } /** * 创建管理员角色 */ private function createAdminRole(): void { $role = Role::create([ 'name' => 'admin', 'guard_name' => 'web', ]); // 管理员权限(除了角色管理) $permissions = [ // 文档管理 'document.viewAny', 'document.view', 'document.create', 'document.update', 'document.delete', 'document.download', // 系统设置 'system-setting.viewAny', 'system-setting.view', 'system-setting.update', // 操作日志 'activity-log.viewAny', 'activity-log.view', 'activity-log.export', // 终端管理 'terminal.viewAny', 'terminal.view', 'terminal.create', 'terminal.update', 'terminal.delete', 'terminal.sync', // SOP模板 'sop-template.viewAny', 'sop-template.view', 'sop-template.create', 'sop-template.update', 'sop-template.delete', 'sop-template.publish', 'sop-template.archive', // 分组管理 'group.viewAny', 'group.view', 'group.create', 'group.update', 'group.delete', // 用户管理 'user.viewAny', 'user.view', 'user.create', 'user.update', 'user.delete', ]; $role->givePermissionTo($permissions); } /** * 创建普通用户角色 */ private function createUserRole(): void { $role = Role::create([ 'name' => 'user', 'guard_name' => 'web', ]); // 普通用户权限(基本查看和操作) $permissions = [ // 文档管理 'document.viewAny', 'document.view', 'document.create', 'document.download', // 终端管理(仅查看) 'terminal.viewAny', 'terminal.view', // SOP模板(仅查看) 'sop-template.viewAny', 'sop-template.view', // 分组管理(仅查看) 'group.viewAny', 'group.view', ]; $role->givePermissionTo($permissions); } }