feat(admin): preserve list return target for back and close actions
This commit is contained in:
@@ -11,6 +11,9 @@ use MintyPHP\Support\Guard;
|
||||
$session = app(SessionStoreInterface::class)->all();
|
||||
Guard::requireLogin();
|
||||
$request = requestInput();
|
||||
$returnTarget = requestResolveReturnTarget();
|
||||
$closeTarget = requestResolveReturnTarget('admin/departments');
|
||||
$createTarget = requestPathWithReturnTarget('admin/departments/create', $returnTarget);
|
||||
$tenantService = app(\MintyPHP\Service\Tenant\TenantService::class);
|
||||
$directoryScopeGateway = app(\MintyPHP\Service\Directory\DirectoryScopeGateway::class);
|
||||
$departmentService = app(\MintyPHP\Service\Org\DepartmentService::class);
|
||||
@@ -48,8 +51,8 @@ if ($allowedTenantIds) {
|
||||
}
|
||||
|
||||
if ($request->isMethod('POST') && !Session::checkCsrfToken()) {
|
||||
Flash::error(t('Form expired, please try again'), 'admin/departments/create', 'csrf_expired');
|
||||
Router::redirect('admin/departments/create');
|
||||
Flash::error(t('Form expired, please try again'), $createTarget, 'csrf_expired');
|
||||
Router::redirect($createTarget);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -70,14 +73,14 @@ if ($request->hasBody('description')) {
|
||||
$action = (string) $request->body('action', 'create');
|
||||
if ($action === 'create_close') {
|
||||
if ($warnings) {
|
||||
Flash::info(implode(' ', $warnings), 'admin/departments', 'department_warning');
|
||||
Flash::info(implode(' ', $warnings), $closeTarget, 'department_warning');
|
||||
}
|
||||
Flash::success('Department created', 'admin/departments', 'department_created');
|
||||
Router::redirect('admin/departments');
|
||||
Flash::success('Department created', $closeTarget, 'department_created');
|
||||
Router::redirect($closeTarget);
|
||||
} else {
|
||||
$uuid = (string) ($result['uuid'] ?? '');
|
||||
if ($uuid !== '') {
|
||||
$target = "admin/departments/edit/{$uuid}";
|
||||
$target = requestPathWithReturnTarget("admin/departments/edit/{$uuid}", $returnTarget);
|
||||
if ($warnings) {
|
||||
Flash::info(implode(' ', $warnings), $target, 'department_warning');
|
||||
}
|
||||
@@ -85,10 +88,10 @@ if ($request->hasBody('description')) {
|
||||
Router::redirect($target);
|
||||
} else {
|
||||
if ($warnings) {
|
||||
Flash::info(implode(' ', $warnings), 'admin/departments', 'department_warning');
|
||||
Flash::info(implode(' ', $warnings), $closeTarget, 'department_warning');
|
||||
}
|
||||
Flash::success('Department created', 'admin/departments', 'department_created');
|
||||
Router::redirect('admin/departments');
|
||||
Flash::success('Department created', $closeTarget, 'department_created');
|
||||
Router::redirect($closeTarget);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,8 @@ use MintyPHP\Support\Guard;
|
||||
$session = app(SessionStoreInterface::class)->all();
|
||||
Guard::requireLogin();
|
||||
$request = requestInput();
|
||||
$returnTarget = requestResolveReturnTarget();
|
||||
$closeTarget = requestResolveReturnTarget('admin/departments');
|
||||
$authorizationService = app(\MintyPHP\Service\Access\AuthorizationService::class);
|
||||
|
||||
$currentUserId = (int) ($session['user']['id'] ?? 0);
|
||||
@@ -23,10 +25,11 @@ $tenantService = app(\MintyPHP\Service\Tenant\TenantService::class);
|
||||
$directoryScopeGateway = app(\MintyPHP\Service\Directory\DirectoryScopeGateway::class);
|
||||
|
||||
$uuid = trim((string) ($id ?? ''));
|
||||
$editTarget = requestPathWithReturnTarget("admin/departments/edit/{$uuid}", $returnTarget);
|
||||
$department = $uuid !== '' ? $departmentService->findByUuid($uuid) : null;
|
||||
if (!$department) {
|
||||
Flash::error('Department not found', 'admin/departments', 'department_not_found');
|
||||
Router::redirect('admin/departments');
|
||||
Flash::error('Department not found', $closeTarget, 'department_not_found');
|
||||
Router::redirect($closeTarget);
|
||||
}
|
||||
|
||||
$departmentId = (int) ($department['id'] ?? 0);
|
||||
@@ -95,8 +98,8 @@ if ($allowedTenantIds) {
|
||||
}
|
||||
|
||||
if ($request->isMethod('POST') && !Session::checkCsrfToken()) {
|
||||
Flash::error(t('Form expired, please try again'), "admin/departments/edit/{$uuid}", 'csrf_expired');
|
||||
Router::redirect("admin/departments/edit/{$uuid}");
|
||||
Flash::error(t('Form expired, please try again'), $editTarget, 'csrf_expired');
|
||||
Router::redirect($editTarget);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -142,20 +145,20 @@ if ($request->hasBody('description')) {
|
||||
$cleaned = $departmentService->cleanupUserAssignments($departmentId);
|
||||
$action = (string) $request->body('action', 'save');
|
||||
if ($cleaned > 0) {
|
||||
Flash::info(t('Department assignments cleaned: %d', $cleaned), "admin/departments/edit/{$uuid}", 'department_assignments_cleaned');
|
||||
Flash::info(t('Department assignments cleaned: %d', $cleaned), $editTarget, 'department_assignments_cleaned');
|
||||
}
|
||||
if ($action === 'save_close') {
|
||||
if ($warnings) {
|
||||
Flash::info(implode(' ', $warnings), 'admin/departments', 'department_warning');
|
||||
Flash::info(implode(' ', $warnings), $closeTarget, 'department_warning');
|
||||
}
|
||||
Flash::success('Department updated', 'admin/departments', 'department_updated');
|
||||
Router::redirect('admin/departments');
|
||||
Flash::success('Department updated', $closeTarget, 'department_updated');
|
||||
Router::redirect($closeTarget);
|
||||
} else {
|
||||
if ($warnings) {
|
||||
Flash::info(implode(' ', $warnings), "admin/departments/edit/{$uuid}", 'department_warning');
|
||||
Flash::info(implode(' ', $warnings), $editTarget, 'department_warning');
|
||||
}
|
||||
Flash::success('Department updated', "admin/departments/edit/{$uuid}", 'department_updated');
|
||||
Router::redirect("admin/departments/edit/{$uuid}");
|
||||
Flash::success('Department updated', $editTarget, 'department_updated');
|
||||
Router::redirect($editTarget);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<?php
|
||||
use MintyPHP\Router;
|
||||
use MintyPHP\Http\Request;
|
||||
|
||||
$canCreateDepartments = (bool) ($canCreateDepartments ?? false);
|
||||
$toolbarFilterSchema = is_array($toolbarFilterSchema ?? null) ? $toolbarFilterSchema : [];
|
||||
@@ -24,7 +25,7 @@ $listTitle = t('Departments');
|
||||
ob_start();
|
||||
?>
|
||||
<?php if ($canCreateDepartments): ?>
|
||||
<a role="button" class="primary" href="admin/departments/create">
|
||||
<a role="button" class="primary" href="<?php e(requestPathWithReturnTarget('admin/departments/create', Request::pathWithQuery())); ?>">
|
||||
<i class="bi bi-plus"></i> <?php e(t('Create department')); ?>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
|
||||
@@ -11,6 +11,9 @@ use MintyPHP\Support\Guard;
|
||||
$session = app(SessionStoreInterface::class)->all();
|
||||
Guard::requireLogin();
|
||||
$request = requestInput();
|
||||
$returnTarget = requestResolveReturnTarget();
|
||||
$closeTarget = requestResolveReturnTarget('admin/permissions');
|
||||
$createTarget = requestPathWithReturnTarget('admin/permissions/create', $returnTarget);
|
||||
|
||||
$currentUserId = (int) ($session['user']['id'] ?? 0);
|
||||
$authorizationService = app(\MintyPHP\Service\Access\AuthorizationService::class);
|
||||
@@ -31,8 +34,8 @@ $form = [
|
||||
];
|
||||
|
||||
if ($request->isMethod('POST') && !Session::checkCsrfToken()) {
|
||||
Flash::error(t('Form expired, please try again'), 'admin/permissions/create', 'csrf_expired');
|
||||
Router::redirect('admin/permissions/create');
|
||||
Flash::error(t('Form expired, please try again'), $createTarget, 'csrf_expired');
|
||||
Router::redirect($createTarget);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -44,17 +47,17 @@ if ($request->hasBody('key')) {
|
||||
if (($result['ok'] ?? false) && !$errorBag->hasAny()) {
|
||||
$action = (string) $request->body('action', 'create');
|
||||
if ($action === 'create_close') {
|
||||
Flash::success('Permission created', 'admin/permissions', 'permission_created');
|
||||
Router::redirect('admin/permissions');
|
||||
Flash::success('Permission created', $closeTarget, 'permission_created');
|
||||
Router::redirect($closeTarget);
|
||||
} else {
|
||||
$id = (int) ($result['id'] ?? 0);
|
||||
if ($id > 0) {
|
||||
$target = "admin/permissions/edit/{$id}";
|
||||
$target = requestPathWithReturnTarget("admin/permissions/edit/{$id}", $returnTarget);
|
||||
Flash::success('Permission created', $target, 'permission_created');
|
||||
Router::redirect($target);
|
||||
} else {
|
||||
Flash::success('Permission created', 'admin/permissions', 'permission_created');
|
||||
Router::redirect('admin/permissions');
|
||||
Flash::success('Permission created', $closeTarget, 'permission_created');
|
||||
Router::redirect($closeTarget);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,15 +12,18 @@ use MintyPHP\Support\Guard;
|
||||
$session = app(SessionStoreInterface::class)->all();
|
||||
Guard::requireLogin();
|
||||
$request = requestInput();
|
||||
$returnTarget = requestResolveReturnTarget();
|
||||
$closeTarget = requestResolveReturnTarget('admin/permissions');
|
||||
|
||||
$currentUserId = (int) ($session['user']['id'] ?? 0);
|
||||
$authorizationService = app(\MintyPHP\Service\Access\AuthorizationService::class);
|
||||
|
||||
$id = (int) ($id ?? 0);
|
||||
$editTarget = requestPathWithReturnTarget("admin/permissions/edit/{$id}", $returnTarget);
|
||||
$permission = $id > 0 ? app(\MintyPHP\Service\Access\PermissionGateway::class)->find($id) : null;
|
||||
if (!$permission) {
|
||||
Flash::error('Permission not found', 'admin/permissions', 'permission_not_found');
|
||||
Router::redirect('admin/permissions');
|
||||
Flash::error('Permission not found', $closeTarget, 'permission_not_found');
|
||||
Router::redirect($closeTarget);
|
||||
}
|
||||
$isSystemPermission = (int) ($permission['is_system'] ?? 0) === 1;
|
||||
$contextDecision = $authorizationService->authorize(PermissionAuthorizationPolicy::ABILITY_ADMIN_PERMISSIONS_EDIT_CONTEXT, [
|
||||
@@ -46,8 +49,8 @@ $selectedRoleIds = $rolePermissionRepository->listRoleIdsByPermissionId($id);
|
||||
$previousRoleIds = $selectedRoleIds;
|
||||
|
||||
if ($request->isMethod('POST') && !Session::checkCsrfToken()) {
|
||||
Flash::error(t('Form expired, please try again'), "admin/permissions/edit/{$id}", 'csrf_expired');
|
||||
Router::redirect("admin/permissions/edit/{$id}");
|
||||
Flash::error(t('Form expired, please try again'), $editTarget, 'csrf_expired');
|
||||
Router::redirect($editTarget);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -97,11 +100,11 @@ if ($request->hasBody('key')) {
|
||||
if ($syncSucceeded) {
|
||||
$action = (string) $request->body('action', 'save');
|
||||
if ($action === 'save_close') {
|
||||
Flash::success('Permission updated', 'admin/permissions', 'permission_updated');
|
||||
Router::redirect('admin/permissions');
|
||||
Flash::success('Permission updated', $closeTarget, 'permission_updated');
|
||||
Router::redirect($closeTarget);
|
||||
} else {
|
||||
Flash::success('Permission updated', "admin/permissions/edit/{$id}", 'permission_updated');
|
||||
Router::redirect("admin/permissions/edit/{$id}");
|
||||
Flash::success('Permission updated', $editTarget, 'permission_updated');
|
||||
Router::redirect($editTarget);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<?php
|
||||
use MintyPHP\Router;
|
||||
use MintyPHP\Http\Request;
|
||||
|
||||
$canCreatePermissions = (bool) ($canCreatePermissions ?? false);
|
||||
$toolbarFilterSchema = is_array($toolbarFilterSchema ?? null) ? $toolbarFilterSchema : [];
|
||||
@@ -22,7 +23,7 @@ $listTitle = t('Permissions');
|
||||
ob_start();
|
||||
?>
|
||||
<?php if ($canCreatePermissions): ?>
|
||||
<a role="button" class="primary" href="admin/permissions/create">
|
||||
<a role="button" class="primary" href="<?php e(requestPathWithReturnTarget('admin/permissions/create', Request::pathWithQuery())); ?>">
|
||||
<i class="bi bi-plus"></i> <?php e(t('Create permission')); ?>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
|
||||
@@ -11,6 +11,9 @@ use MintyPHP\Support\Guard;
|
||||
$session = app(SessionStoreInterface::class)->all();
|
||||
Guard::requireLogin();
|
||||
$request = requestInput();
|
||||
$returnTarget = requestResolveReturnTarget();
|
||||
$closeTarget = requestResolveReturnTarget('admin/roles');
|
||||
$createTarget = requestPathWithReturnTarget('admin/roles/create', $returnTarget);
|
||||
|
||||
$currentUserId = (int) ($session['user']['id'] ?? 0);
|
||||
$authorizationService = app(\MintyPHP\Service\Access\AuthorizationService::class);
|
||||
@@ -34,8 +37,8 @@ $permissions = $permissionRepository->listActive();
|
||||
$selectedPermissionIds = [];
|
||||
|
||||
if ($request->isMethod('POST') && !Session::checkCsrfToken()) {
|
||||
Flash::error(t('Form expired, please try again'), 'admin/roles/create', 'csrf_expired');
|
||||
Router::redirect('admin/roles/create');
|
||||
Flash::error(t('Form expired, please try again'), $createTarget, 'csrf_expired');
|
||||
Router::redirect($createTarget);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -72,17 +75,17 @@ if ($request->hasBody('description')) {
|
||||
|
||||
$action = (string) $request->body('action', 'create');
|
||||
if ($action === 'create_close') {
|
||||
Flash::success('Role created', 'admin/roles', 'role_created');
|
||||
Router::redirect('admin/roles');
|
||||
Flash::success('Role created', $closeTarget, 'role_created');
|
||||
Router::redirect($closeTarget);
|
||||
} else {
|
||||
$uuid = (string) ($result['uuid'] ?? '');
|
||||
if ($uuid !== '') {
|
||||
$target = "admin/roles/edit/{$uuid}";
|
||||
$target = requestPathWithReturnTarget("admin/roles/edit/{$uuid}", $returnTarget);
|
||||
Flash::success('Role created', $target, 'role_created');
|
||||
Router::redirect($target);
|
||||
} else {
|
||||
Flash::success('Role created', 'admin/roles', 'role_created');
|
||||
Router::redirect('admin/roles');
|
||||
Flash::success('Role created', $closeTarget, 'role_created');
|
||||
Router::redirect($closeTarget);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,8 @@ use MintyPHP\Support\Guard;
|
||||
$session = app(SessionStoreInterface::class)->all();
|
||||
Guard::requireLogin();
|
||||
$request = requestInput();
|
||||
$returnTarget = requestResolveReturnTarget();
|
||||
$closeTarget = requestResolveReturnTarget('admin/roles');
|
||||
|
||||
$currentUserId = (int) ($session['user']['id'] ?? 0);
|
||||
$authorizationService = app(\MintyPHP\Service\Access\AuthorizationService::class);
|
||||
@@ -21,10 +23,11 @@ $userWriteRepository = app(\MintyPHP\Repository\User\UserWriteRepository::class)
|
||||
$userAccountService = app(\MintyPHP\Service\User\UserAccountService::class);
|
||||
|
||||
$uuid = trim((string) ($id ?? ''));
|
||||
$editTarget = requestPathWithReturnTarget("admin/roles/edit/{$uuid}", $returnTarget);
|
||||
$role = $uuid !== '' ? app(\MintyPHP\Service\Access\RoleService::class)->findByUuid($uuid) : null;
|
||||
if (!$role) {
|
||||
Flash::error('Role not found', 'admin/roles', 'role_not_found');
|
||||
Router::redirect('admin/roles');
|
||||
Flash::error('Role not found', $closeTarget, 'role_not_found');
|
||||
Router::redirect($closeTarget);
|
||||
}
|
||||
|
||||
$roleId = (int) ($role['id'] ?? 0);
|
||||
@@ -65,8 +68,8 @@ $permissions = $permissionRepository->listActive();
|
||||
$selectedPermissionIds = $rolePermissionRepository->listPermissionIdsByRoleId($roleId);
|
||||
|
||||
if ($request->isMethod('POST') && !Session::checkCsrfToken()) {
|
||||
Flash::error(t('Form expired, please try again'), "admin/roles/edit/{$uuid}", 'csrf_expired');
|
||||
Router::redirect("admin/roles/edit/{$uuid}");
|
||||
Flash::error(t('Form expired, please try again'), $editTarget, 'csrf_expired');
|
||||
Router::redirect($editTarget);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -114,11 +117,11 @@ if ($request->hasBody('description')) {
|
||||
if ($syncSucceeded) {
|
||||
$action = (string) $request->body('action', 'save');
|
||||
if ($action === 'save_close') {
|
||||
Flash::success('Role updated', 'admin/roles', 'role_updated');
|
||||
Router::redirect('admin/roles');
|
||||
Flash::success('Role updated', $closeTarget, 'role_updated');
|
||||
Router::redirect($closeTarget);
|
||||
} else {
|
||||
Flash::success('Role updated', "admin/roles/edit/{$uuid}", 'role_updated');
|
||||
Router::redirect("admin/roles/edit/{$uuid}");
|
||||
Flash::success('Role updated', $editTarget, 'role_updated');
|
||||
Router::redirect($editTarget);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<?php
|
||||
use MintyPHP\Router;
|
||||
use MintyPHP\Http\Request;
|
||||
|
||||
$canCreateRoles = (bool) ($canCreateRoles ?? false);
|
||||
$toolbarFilterSchema = is_array($toolbarFilterSchema ?? null) ? $toolbarFilterSchema : [];
|
||||
@@ -22,7 +23,7 @@ $listTitle = t('Roles');
|
||||
ob_start();
|
||||
?>
|
||||
<?php if ($canCreateRoles): ?>
|
||||
<a role="button" class="primary" href="admin/roles/create">
|
||||
<a role="button" class="primary" href="<?php e(requestPathWithReturnTarget('admin/roles/create', Request::pathWithQuery())); ?>">
|
||||
<i class="bi bi-plus"></i> <?php e(t('Create role')); ?>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
|
||||
@@ -11,6 +11,9 @@ use MintyPHP\Support\Guard;
|
||||
$session = app(SessionStoreInterface::class)->all();
|
||||
Guard::requireLogin();
|
||||
$request = requestInput();
|
||||
$returnTarget = requestResolveReturnTarget();
|
||||
$closeTarget = requestResolveReturnTarget('admin/tenants');
|
||||
$createTarget = requestPathWithReturnTarget('admin/tenants/create', $returnTarget);
|
||||
|
||||
$currentUserId = (int) ($session['user']['id'] ?? 0);
|
||||
$authorizationService = app(\MintyPHP\Service\Access\AuthorizationService::class);
|
||||
@@ -54,8 +57,8 @@ $form = [
|
||||
$ssoUiState = $canManageSso ? $tenantSsoService->buildMicrosoftUiState(0, $form) : [];
|
||||
|
||||
if ($request->isMethod('POST') && !Session::checkCsrfToken()) {
|
||||
Flash::error(t('Form expired, please try again'), 'admin/tenants/create', 'csrf_expired');
|
||||
Router::redirect('admin/tenants/create');
|
||||
Flash::error(t('Form expired, please try again'), $createTarget, 'csrf_expired');
|
||||
Router::redirect($createTarget);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -105,7 +108,7 @@ if ($request->hasBody('description')) {
|
||||
if (!($ssoSaveResult['ok'] ?? false)) {
|
||||
Flash::error(
|
||||
(string) (($ssoSaveResult['errors'][0] ?? t('Tenant SSO settings could not be saved'))),
|
||||
'admin/tenants',
|
||||
$closeTarget,
|
||||
'tenant_sso_create_failed'
|
||||
);
|
||||
}
|
||||
@@ -113,17 +116,17 @@ if ($request->hasBody('description')) {
|
||||
}
|
||||
$action = (string) ($post['action'] ?? 'create');
|
||||
if ($action === 'create_close') {
|
||||
Flash::success('Tenant created', 'admin/tenants', 'tenant_created');
|
||||
Router::redirect('admin/tenants');
|
||||
Flash::success('Tenant created', $closeTarget, 'tenant_created');
|
||||
Router::redirect($closeTarget);
|
||||
} else {
|
||||
$uuid = (string) ($result['uuid'] ?? '');
|
||||
if ($uuid !== '') {
|
||||
$target = "admin/tenants/edit/{$uuid}";
|
||||
$target = requestPathWithReturnTarget("admin/tenants/edit/{$uuid}", $returnTarget);
|
||||
Flash::success('Tenant created', $target, 'tenant_created');
|
||||
Router::redirect($target);
|
||||
} else {
|
||||
Flash::success('Tenant created', 'admin/tenants', 'tenant_created');
|
||||
Router::redirect('admin/tenants');
|
||||
Flash::success('Tenant created', $closeTarget, 'tenant_created');
|
||||
Router::redirect($closeTarget);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,6 +12,8 @@ use MintyPHP\Support\Guard;
|
||||
$session = app(SessionStoreInterface::class)->all();
|
||||
Guard::requireLogin();
|
||||
$request = requestInput();
|
||||
$returnTarget = requestResolveReturnTarget();
|
||||
$closeTarget = requestResolveReturnTarget('admin/tenants');
|
||||
|
||||
$currentUserId = (int) ($session['user']['id'] ?? 0);
|
||||
if ($currentUserId > 0) {
|
||||
@@ -20,10 +22,11 @@ if ($currentUserId > 0) {
|
||||
$userAccountService = app(\MintyPHP\Service\User\UserAccountService::class);
|
||||
|
||||
$uuid = trim((string) ($id ?? ''));
|
||||
$editTarget = requestPathWithReturnTarget("admin/tenants/edit/{$uuid}", $returnTarget);
|
||||
$tenant = $uuid !== '' ? app(\MintyPHP\Service\Tenant\TenantService::class)->findByUuid($uuid) : null;
|
||||
if (!$tenant) {
|
||||
Flash::error('Tenant not found', 'admin/tenants', 'tenant_not_found');
|
||||
Router::redirect('admin/tenants');
|
||||
Flash::error('Tenant not found', $closeTarget, 'tenant_not_found');
|
||||
Router::redirect($closeTarget);
|
||||
}
|
||||
|
||||
$tenantId = (int) ($tenant['id'] ?? 0);
|
||||
@@ -97,8 +100,8 @@ $errors = [];
|
||||
$form = array_merge($tenant, $ssoConfig);
|
||||
|
||||
if ($request->isMethod('POST') && !Session::checkCsrfToken()) {
|
||||
Flash::error(t('Form expired, please try again'), "admin/tenants/edit/{$uuid}", 'csrf_expired');
|
||||
Router::redirect("admin/tenants/edit/{$uuid}");
|
||||
Flash::error(t('Form expired, please try again'), $editTarget, 'csrf_expired');
|
||||
Router::redirect($editTarget);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -149,11 +152,11 @@ if ($request->hasBody('description')) {
|
||||
}
|
||||
$action = (string) ($post['action'] ?? 'save');
|
||||
if ($action === 'save_close') {
|
||||
Flash::success('Tenant updated', 'admin/tenants', 'tenant_updated');
|
||||
Router::redirect('admin/tenants');
|
||||
Flash::success('Tenant updated', $closeTarget, 'tenant_updated');
|
||||
Router::redirect($closeTarget);
|
||||
} else {
|
||||
Flash::success('Tenant updated', "admin/tenants/edit/{$uuid}", 'tenant_updated');
|
||||
Router::redirect("admin/tenants/edit/{$uuid}");
|
||||
Flash::success('Tenant updated', $editTarget, 'tenant_updated');
|
||||
Router::redirect($editTarget);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<?php
|
||||
use MintyPHP\Router;
|
||||
use MintyPHP\Http\Request;
|
||||
|
||||
$canCreateTenants = (bool) ($canCreateTenants ?? false);
|
||||
$toolbarFilterSchema = is_array($toolbarFilterSchema ?? null) ? $toolbarFilterSchema : [];
|
||||
@@ -22,7 +23,7 @@ $listTitle = t('Tenants');
|
||||
ob_start();
|
||||
?>
|
||||
<?php if ($canCreateTenants): ?>
|
||||
<a role="button" class="primary" href="admin/tenants/create">
|
||||
<a role="button" class="primary" href="<?php e(requestPathWithReturnTarget('admin/tenants/create', Request::pathWithQuery())); ?>">
|
||||
<i class="bi bi-plus"></i> <?php e(t('Create tenant')); ?>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
|
||||
@@ -16,6 +16,9 @@ use MintyPHP\Support\Guard;
|
||||
$session = app(SessionStoreInterface::class)->all();
|
||||
Guard::requireLogin();
|
||||
$request = requestInput();
|
||||
$returnTarget = requestResolveReturnTarget();
|
||||
$closeTarget = requestResolveReturnTarget('admin/users');
|
||||
$createTarget = requestPathWithReturnTarget('admin/users/create', $returnTarget);
|
||||
$authorizationService = app(\MintyPHP\Service\Access\AuthorizationService::class);
|
||||
$decision = $authorizationService->authorize(UserAuthorizationPolicy::ABILITY_ADMIN_USERS_CREATE, [
|
||||
'actor_user_id' => (int) ($session['user']['id'] ?? 0),
|
||||
@@ -93,8 +96,8 @@ $form = [
|
||||
];
|
||||
|
||||
if ($request->isMethod('POST') && !Session::checkCsrfToken()) {
|
||||
Flash::error(t('Form expired, please try again'), 'admin/users/create', 'csrf_expired');
|
||||
Router::redirect('admin/users/create');
|
||||
Flash::error(t('Form expired, please try again'), $createTarget, 'csrf_expired');
|
||||
Router::redirect($createTarget);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -172,7 +175,7 @@ if ($request->hasBody('email')) {
|
||||
if ($syncErrors) {
|
||||
Flash::error(
|
||||
implode(' | ', $syncErrors),
|
||||
"admin/users/edit/{$createdUuid}",
|
||||
requestPathWithReturnTarget("admin/users/edit/{$createdUuid}", $returnTarget),
|
||||
'user_custom_field_sync_failed'
|
||||
);
|
||||
}
|
||||
@@ -181,17 +184,17 @@ if ($request->hasBody('email')) {
|
||||
}
|
||||
$action = (string) ($post['action'] ?? 'create');
|
||||
if ($action === 'create_close') {
|
||||
Flash::success('User created', 'admin/users', 'user_created');
|
||||
Router::redirect('admin/users');
|
||||
Flash::success('User created', $closeTarget, 'user_created');
|
||||
Router::redirect($closeTarget);
|
||||
} else {
|
||||
$uuid = $createdUuid;
|
||||
if ($uuid !== '') {
|
||||
$target = "admin/users/edit/{$uuid}";
|
||||
$target = requestPathWithReturnTarget("admin/users/edit/{$uuid}", $returnTarget);
|
||||
Flash::success('User created', $target, 'user_created');
|
||||
Router::redirect($target);
|
||||
} else {
|
||||
Flash::success('User created', 'admin/users', 'user_created');
|
||||
Router::redirect('admin/users');
|
||||
Flash::success('User created', $closeTarget, 'user_created');
|
||||
Router::redirect($closeTarget);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,8 @@ $session = $sessionStore->all();
|
||||
|
||||
Guard::requireLogin();
|
||||
$request = requestInput();
|
||||
$returnTarget = requestResolveReturnTarget();
|
||||
$closeTarget = requestResolveReturnTarget('admin/users');
|
||||
$userAccountService = app(\MintyPHP\Service\User\UserAccountService::class);
|
||||
$userAssignmentService = app(\MintyPHP\Service\User\UserAssignmentService::class);
|
||||
$userTenantRepository = app(\MintyPHP\Repository\Tenant\UserTenantRepository::class);
|
||||
@@ -38,10 +40,11 @@ $passwordHints = $userPasswordPolicyService->hints();
|
||||
|
||||
$currentUserId = (int) ($session['user']['id'] ?? 0);
|
||||
$uuid = trim((string) ($id ?? ''));
|
||||
$editTarget = requestPathWithReturnTarget("admin/users/edit/{$uuid}", $returnTarget);
|
||||
$user = $uuid !== '' ? $userAccountService->findByUuid($uuid) : null;
|
||||
if (!$user) {
|
||||
Flash::error('User not found', 'admin/users', 'user_not_found');
|
||||
Router::redirect('admin/users');
|
||||
Flash::error('User not found', $closeTarget, 'user_not_found');
|
||||
Router::redirect($closeTarget);
|
||||
}
|
||||
|
||||
$userId = (int) ($user['id'] ?? 0);
|
||||
@@ -175,8 +178,8 @@ $canManageApiTokens = $canManageApiTokens && $canViewSecurityArtifacts;
|
||||
$showApiTokens = $canViewSecurityArtifacts && (!empty($apiTokens) || $canManageApiTokens);
|
||||
|
||||
if ($request->isMethod('POST') && !Session::checkCsrfToken()) {
|
||||
Flash::error(t('Form expired, please try again'), "admin/users/edit/{$uuid}", 'csrf_expired');
|
||||
Router::redirect("admin/users/edit/{$uuid}");
|
||||
Flash::error(t('Form expired, please try again'), $editTarget, 'csrf_expired');
|
||||
Router::redirect($editTarget);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -297,11 +300,11 @@ if ($request->hasBody('email')) {
|
||||
if (!$errorBag->hasAny()) {
|
||||
$action = (string) ($post['action'] ?? 'save');
|
||||
if ($action === 'save_close') {
|
||||
Flash::success('User updated', 'admin/users', 'user_updated');
|
||||
Router::redirect('admin/users');
|
||||
Flash::success('User updated', $closeTarget, 'user_updated');
|
||||
Router::redirect($closeTarget);
|
||||
} else {
|
||||
Flash::success('User updated', "admin/users/edit/{$uuid}", 'user_updated');
|
||||
Router::redirect("admin/users/edit/{$uuid}");
|
||||
Flash::success('User updated', $editTarget, 'user_updated');
|
||||
Router::redirect($editTarget);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?php
|
||||
use MintyPHP\Router;
|
||||
use MintyPHP\Session;
|
||||
use MintyPHP\Http\Request;
|
||||
|
||||
$toolbarFilterSchema = is_array($toolbarFilterSchema ?? null) ? $toolbarFilterSchema : [];
|
||||
$searchToolbarFilterSchema = is_array($searchToolbarFilterSchema ?? null) ? $searchToolbarFilterSchema : [];
|
||||
@@ -64,7 +65,7 @@ ob_start();
|
||||
</details>
|
||||
|
||||
<?php if ($canCreateUser): ?>
|
||||
<a role="button" class="primary" href="admin/users/create">
|
||||
<a role="button" class="primary" href="<?php e(requestPathWithReturnTarget('admin/users/create', Request::pathWithQuery())); ?>">
|
||||
<i class="bi bi-plus"></i> <?php e(t('Create user')); ?>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
|
||||
Reference in New Issue
Block a user