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('角色权限关联种子数据插入完成'); } }