fix unittests issues
API CI/CD / Validate (composer + pint) (push) Successful in 3m6s
API CI/CD / Test (PHPUnit) (push) Failing after 4m53s
API CI/CD / Build frontend assets (push) Successful in 1m2s
API CI/CD / Security audit (push) Failing after 59s
API CI/CD / Deploy to shared hosting (PHP) (push) Has been skipped
API CI/CD / Validate (composer + pint) (push) Successful in 3m6s
API CI/CD / Test (PHPUnit) (push) Failing after 4m53s
API CI/CD / Build frontend assets (push) Successful in 1m2s
API CI/CD / Security audit (push) Failing after 59s
API CI/CD / Deploy to shared hosting (PHP) (push) Has been skipped
This commit is contained in:
@@ -245,8 +245,23 @@ class RolePermissionController extends BaseApiController
|
||||
|
||||
public function updateRolePermissions(RolePermissionUpdateRequest $request, int $roleId): JsonResponse
|
||||
{
|
||||
$payload = $request->validated();
|
||||
$permissions = $payload['permissions'] ?? null;
|
||||
if ($permissions === null && isset($payload['permission_ids'])) {
|
||||
$permissions = [];
|
||||
foreach ((array) $payload['permission_ids'] as $permissionId) {
|
||||
$permissions[(int) $permissionId] = [
|
||||
'create' => true,
|
||||
'read' => true,
|
||||
'update' => true,
|
||||
'delete' => true,
|
||||
'manage' => true,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$this->permissionService->saveRolePermissions($roleId, $request->validated()['permissions'] ?? []);
|
||||
$this->permissionService->saveRolePermissions($roleId, $permissions ?? []);
|
||||
} catch (\Throwable $e) {
|
||||
Log::error('Role permissions update failed: '.$e->getMessage());
|
||||
|
||||
|
||||
@@ -91,7 +91,7 @@ class PreferencesController extends BaseApiController
|
||||
|
||||
return $this->success([
|
||||
'preferences' => new PreferencesResource($payload['preferences']),
|
||||
], 'Preferences saved.', $saved->wasRecentlyCreated ? Response::HTTP_CREATED : Response::HTTP_OK);
|
||||
], 'Preferences saved.');
|
||||
}
|
||||
|
||||
public function updateForUser(PreferencesUpsertRequest $request, int $userId): JsonResponse
|
||||
@@ -113,18 +113,18 @@ class PreferencesController extends BaseApiController
|
||||
|
||||
return $this->success([
|
||||
'preferences' => new PreferencesResource($payload['preferences']),
|
||||
], 'Preferences saved.', $saved->wasRecentlyCreated ? Response::HTTP_CREATED : Response::HTTP_OK);
|
||||
], 'Preferences saved.');
|
||||
}
|
||||
|
||||
public function destroy(int $userId): JsonResponse
|
||||
{
|
||||
$row = Preferences::query()->where('user_id', $userId)->first();
|
||||
$this->authorize('delete', $row ?? new Preferences(['user_id' => $userId]));
|
||||
|
||||
if (! $row) {
|
||||
return $this->error('Preferences not found.', Response::HTTP_NOT_FOUND);
|
||||
}
|
||||
|
||||
$this->authorize('delete', $row);
|
||||
|
||||
try {
|
||||
$deleted = $this->commandService->delete($row);
|
||||
} catch (\Throwable $e) {
|
||||
|
||||
@@ -79,7 +79,15 @@ class NavBuilderController extends BaseApiController
|
||||
$this->authorize('manage', NavItem::class);
|
||||
|
||||
try {
|
||||
$this->builderService->reorder($request->validated()['orders']);
|
||||
$payload = $request->validated();
|
||||
$orders = $payload['orders'] ?? [];
|
||||
if ($orders === [] && isset($payload['items'])) {
|
||||
foreach ((array) $payload['items'] as $item) {
|
||||
$orders[(int) $item['id']] = (int) $item['sort_order'];
|
||||
}
|
||||
}
|
||||
|
||||
$this->builderService->reorder($orders);
|
||||
} catch (\Throwable $e) {
|
||||
Log::error('Nav reorder failed: '.$e->getMessage());
|
||||
|
||||
|
||||
@@ -33,13 +33,14 @@ class EnsureParentProgressAccess
|
||||
->map(fn ($name) => strtolower((string) $name))
|
||||
->toArray();
|
||||
|
||||
if (in_array('parent', $roles, true)) {
|
||||
$userType = strtolower(trim((string) ($user->user_type ?? '')));
|
||||
|
||||
if (in_array('parent', $roles, true) || $userType === 'primary') {
|
||||
$request->attributes->set('primary_parent_id', (int) $user->id);
|
||||
|
||||
return $next($request);
|
||||
}
|
||||
|
||||
$userType = strtolower(trim((string) ($user->user_type ?? '')));
|
||||
if (in_array($userType, ['secondary', 'tertiary'], true)) {
|
||||
/** @var PrimaryParentUserResolver $resolver */
|
||||
$resolver = app(PrimaryParentUserResolver::class);
|
||||
|
||||
@@ -14,13 +14,15 @@ class RolePermissionUpdateRequest extends ApiFormRequest
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'permissions' => ['required', 'array'],
|
||||
'permissions' => ['required_without:permission_ids', 'array'],
|
||||
'permissions.*' => ['array'],
|
||||
'permissions.*.create' => ['nullable', 'boolean'],
|
||||
'permissions.*.read' => ['nullable', 'boolean'],
|
||||
'permissions.*.update' => ['nullable', 'boolean'],
|
||||
'permissions.*.delete' => ['nullable', 'boolean'],
|
||||
'permissions.*.manage' => ['nullable', 'boolean'],
|
||||
'permission_ids' => ['required_without:permissions', 'array'],
|
||||
'permission_ids.*' => ['integer', 'exists:permissions,id'],
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,8 +14,11 @@ class NavItemReorderRequest extends ApiFormRequest
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'orders' => ['required', 'array'],
|
||||
'orders' => ['required_without:items', 'array'],
|
||||
'orders.*' => ['integer'],
|
||||
'items' => ['required_without:orders', 'array'],
|
||||
'items.*.id' => ['required_with:items', 'integer', 'min:1'],
|
||||
'items.*.sort_order' => ['required_with:items', 'integer'],
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user