feat(admin): 更新后台权限管理与同步逻辑,简化权限检查并优化文档
- 新增后台 RBAC 相关文档,提供权限目录与维护命令说明。 - 移除不必要的角色资源同步检查,简化权限审计命令。 - 更新权限描述与同步逻辑,确保一致性与可维护性。 - 统一权限注册表,替换过时的权限别名,增强代码可读性。
This commit is contained in:
@@ -37,15 +37,12 @@ final class AdminSettingController extends Controller
|
||||
public function update(AdminSettingUpdateRequest $request, string $key): JsonResponse
|
||||
{
|
||||
$setting = LotterySetting::query()->where('setting_key', $key)->first();
|
||||
if ($setting === null) {
|
||||
return ApiResponse::error('Setting not found', 404);
|
||||
}
|
||||
|
||||
LotterySettings::put(
|
||||
$key,
|
||||
$request->validated('value'),
|
||||
$setting->group_name,
|
||||
$setting->description_zh,
|
||||
$setting ? $setting->group_name : (explode('.', $key)[0] ?? 'general'),
|
||||
$setting ? $setting->description_zh : null,
|
||||
);
|
||||
|
||||
$fresh = LotterySetting::query()->where('setting_key', $key)->first();
|
||||
|
||||
@@ -17,10 +17,10 @@ final class AdminUserPermissionSyncController extends Controller
|
||||
public function __invoke(AdminUserPermissionSyncRequest $request, AdminUser $admin_user): JsonResponse
|
||||
{
|
||||
$input = $request->validated();
|
||||
$slugs = array_values(array_unique(array_values(array_filter(
|
||||
$slugs = AdminPermissionBridge::normalizeCanonicalLegacySlugs(array_values(array_filter(
|
||||
(array) ($input['permissions'] ?? $input['permission_slugs'] ?? []),
|
||||
static fn ($v) => is_string($v) && $v !== '',
|
||||
))));
|
||||
)));
|
||||
$siteId = AdminUser::defaultAdminSiteId();
|
||||
|
||||
$codes = [];
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Api\V1\Setting;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\LotterySetting;
|
||||
use App\Support\ApiResponse;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
/**
|
||||
* 玩家端/公开:读取 KV 配置(公开访问)
|
||||
*/
|
||||
final class SettingIndexController extends Controller
|
||||
{
|
||||
public function __invoke(Request $request): JsonResponse
|
||||
{
|
||||
$group = $request->query('group');
|
||||
|
||||
$query = LotterySetting::query()->orderBy('setting_key');
|
||||
|
||||
if (! empty($group)) {
|
||||
$query->where('group_name', $group);
|
||||
}
|
||||
|
||||
$items = $query->get()->map(fn (LotterySetting $s): array => [
|
||||
'key' => $s->setting_key,
|
||||
'value' => $s->value_json,
|
||||
'group' => $s->group_name,
|
||||
'description' => $s->description_zh,
|
||||
]);
|
||||
|
||||
return ApiResponse::success(['items' => $items]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user