forked from fa/breadcrumb-the-shire
refactor(support): consolidate remaining ID normalization via toIntIds()
Extends the toIntIds() rollout to service and repository layers: - Drops a third private duplicate (UserCustomFieldValueService::normalizeTenantIds) - Collapses the two-line intval+filter pattern inside UserAssignmentService, UserAuthorizationPolicy, SsoUserLinkService, DepartmentService, and UserCustomFieldValueService - Replaces inline patterns in 4 repositories (RolePermissionRepository, RoleAssignableRoleRepository, UserWriteRepository, DepartmentRepository, UserCustomFieldValueRepository, UserCustomFieldValueOptionRepository) - Simplifies the notifications sanitizeTenantIds trait body Tenant-area files deliberately untouched per parallel ongoing work on the tenant-logo refactor. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -25,7 +25,7 @@ class UserCustomFieldValueService
|
||||
if (!$canEdit) {
|
||||
return ['ok' => true, 'errors' => []];
|
||||
}
|
||||
$tenantIds = self::normalizeTenantIds($tenantIds);
|
||||
$tenantIds = toIntIds($tenantIds);
|
||||
if (!$tenantIds) {
|
||||
return ['ok' => true, 'errors' => []];
|
||||
}
|
||||
@@ -38,7 +38,7 @@ class UserCustomFieldValueService
|
||||
|
||||
public function buildDefinitionsByTenant(array $tenantIds, bool $includeInactive = false): array
|
||||
{
|
||||
$tenantIds = self::normalizeTenantIds($tenantIds);
|
||||
$tenantIds = toIntIds($tenantIds);
|
||||
if (!$tenantIds) {
|
||||
return [];
|
||||
}
|
||||
@@ -83,8 +83,7 @@ class UserCustomFieldValueService
|
||||
if ($userId <= 0) {
|
||||
return [];
|
||||
}
|
||||
$definitionIds = array_values(array_unique(array_map('intval', $definitionIds)));
|
||||
$definitionIds = array_values(array_filter($definitionIds, static fn ($id) => $id > 0));
|
||||
$definitionIds = toIntIds($definitionIds);
|
||||
if (!$definitionIds) {
|
||||
return [];
|
||||
}
|
||||
@@ -251,7 +250,7 @@ class UserCustomFieldValueService
|
||||
return ['ok' => false, 'errors' => [t('User not found')]];
|
||||
}
|
||||
|
||||
$tenantIds = self::normalizeTenantIds($tenantIds);
|
||||
$tenantIds = toIntIds($tenantIds);
|
||||
// Always clean values for tenants no longer assigned — happens even when !$canEdit,
|
||||
// because orphaned custom field data should not persist after tenant reassignment.
|
||||
if (!$this->valueRepository->deleteByUserOutsideTenantIds($userId, $tenantIds)) {
|
||||
@@ -541,12 +540,6 @@ class UserCustomFieldValueService
|
||||
return $this->userScopeGateway;
|
||||
}
|
||||
|
||||
private static function normalizeTenantIds(array $tenantIds): array
|
||||
{
|
||||
$tenantIds = array_values(array_unique(array_map('intval', $tenantIds)));
|
||||
return array_values(array_filter($tenantIds, static fn ($id) => $id > 0));
|
||||
}
|
||||
|
||||
private static function normalizeBool($value): ?int
|
||||
{
|
||||
if (is_bool($value)) {
|
||||
|
||||
Reference in New Issue
Block a user