Skip to content
This repository was archived by the owner on May 12, 2026. It is now read-only.

Commit 8d89dc4

Browse files
committed
Missing Role Alert and show paths of Dynamic Entity CRUD operations
1 parent 4c71a9e commit 8d89dc4

3 files changed

Lines changed: 39 additions & 47 deletions

File tree

src/lib/components/MissingRoleAlert.svelte

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -102,11 +102,6 @@
102102
}
103103
104104
submitSuccess = true;
105-
106-
// Redirect after a short delay to show success message
107-
setTimeout(() => {
108-
window.location.href = "/user";
109-
}, 1500);
110105
} catch (error) {
111106
submitError =
112107
error instanceof Error ? error.message : "Failed to submit request";
@@ -189,8 +184,7 @@
189184

190185
{#if submitSuccess}
191186
<div class="submit-success">
192-
✅ Entitlement request{roles.length > 1 ? "s" : ""} submitted successfully!
193-
Redirecting...
187+
Thanks, an Entitlement Request has been generated. Please ask your administrator to accept it using the <a href="/rbac/entitlement-requests" class="entitlement-requests-link">Entitlement Requests page</a>.
194188
</div>
195189
{:else}
196190
<div class="alert-actions">
@@ -450,6 +444,24 @@
450444
color: rgb(var(--color-success-200));
451445
}
452446
447+
.submit-success :global(.entitlement-requests-link) {
448+
color: #1e40af;
449+
text-decoration: underline;
450+
font-weight: 600;
451+
}
452+
453+
.submit-success :global(.entitlement-requests-link:hover) {
454+
color: #1d4ed8;
455+
}
456+
457+
:global([data-mode="dark"]) .submit-success :global(.entitlement-requests-link) {
458+
color: #93c5fd;
459+
}
460+
461+
:global([data-mode="dark"]) .submit-success :global(.entitlement-requests-link:hover) {
462+
color: #bfdbfe;
463+
}
464+
453465
.tip-box {
454466
margin: 1rem 0;
455467
padding: 0.75rem;

src/routes/(protected)/dynamic-entities/system/[id]/+page.svelte

Lines changed: 9 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -42,21 +42,25 @@
4242
operation: "Create",
4343
role: `CanCreateDynamicEntity_System${entityName}`,
4444
description: `Create new ${entityName} records`,
45+
endpoint: `POST /obp/dynamic-entity/${entityName}`,
4546
},
4647
{
4748
operation: "Read",
4849
role: `CanGetDynamicEntity_System${entityName}`,
4950
description: `View ${entityName} records`,
51+
endpoint: `GET /obp/dynamic-entity/${entityName}`,
5052
},
5153
{
5254
operation: "Update",
5355
role: `CanUpdateDynamicEntity_System${entityName}`,
5456
description: `Update existing ${entityName} records`,
57+
endpoint: `PUT /obp/dynamic-entity/${entityName}/{RECORD_ID}`,
5558
},
5659
{
5760
operation: "Delete",
5861
role: `CanDeleteDynamicEntity_System${entityName}`,
5962
description: `Delete ${entityName} records`,
63+
endpoint: `DELETE /obp/dynamic-entity/${entityName}/{RECORD_ID}`,
6064
},
6165
];
6266
});
@@ -100,11 +104,6 @@
100104
}
101105
102106
requestSuccess[roleName] = true;
103-
104-
// Reload page after a short delay to show success and update entitlements
105-
setTimeout(() => {
106-
window.location.reload();
107-
}, 1500);
108107
} catch (error) {
109108
requestErrors[roleName] =
110109
error instanceof Error ? error.message : "Failed to submit request";
@@ -520,27 +519,17 @@
520519
<p class="mt-1 font-mono text-xs text-gray-500 dark:text-gray-500">
521520
{roleReq.role}
522521
</p>
522+
<p class="mt-1 font-mono text-xs text-blue-600 dark:text-blue-400">
523+
{roleReq.endpoint}
524+
</p>
523525
</div>
524526
{#if !userHasRole(roleReq.role)}
525527
<div class="ml-4 flex flex-col items-end gap-1">
526528
{#if requestSuccess[roleReq.role]}
527529
<div
528-
class="flex items-center gap-1 rounded-lg bg-green-100 px-3 py-2 text-xs font-medium text-green-800 dark:bg-green-900/30 dark:text-green-300"
530+
class="rounded-lg bg-green-100 px-3 py-2 text-xs text-green-800 dark:bg-green-900/30 dark:text-green-300"
529531
>
530-
<svg
531-
class="h-3 w-3"
532-
fill="none"
533-
stroke="currentColor"
534-
viewBox="0 0 24 24"
535-
>
536-
<path
537-
stroke-linecap="round"
538-
stroke-linejoin="round"
539-
stroke-width="2"
540-
d="M5 13l4 4L19 7"
541-
/>
542-
</svg>
543-
Request Submitted
532+
Thanks, request generated. Ask your admin to accept it on the <a href="/rbac/entitlement-requests" class="font-semibold underline hover:text-green-900 dark:hover:text-green-200">Entitlement Requests page</a>.
544533
</div>
545534
{:else}
546535
<button

src/routes/(protected)/dynamic-entities/system/[id]/crud/+page.svelte

Lines changed: 11 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -48,21 +48,25 @@
4848
operation: "Create",
4949
role: `CanCreateDynamicEntity_System${entityName}`,
5050
description: `Create new ${entityName} records`,
51+
endpoint: `POST /obp/dynamic-entity/${entityName}`,
5152
},
5253
{
5354
operation: "Read",
5455
role: `CanGetDynamicEntity_System${entityName}`,
5556
description: `View ${entityName} records`,
57+
endpoint: `GET /obp/dynamic-entity/${entityName}`,
5658
},
5759
{
5860
operation: "Update",
5961
role: `CanUpdateDynamicEntity_System${entityName}`,
6062
description: `Update existing ${entityName} records`,
63+
endpoint: `PUT /obp/dynamic-entity/${entityName}/{RECORD_ID}`,
6164
},
6265
{
6366
operation: "Delete",
6467
role: `CanDeleteDynamicEntity_System${entityName}`,
6568
description: `Delete ${entityName} records`,
69+
endpoint: `DELETE /obp/dynamic-entity/${entityName}/{RECORD_ID}`,
6670
},
6771
];
6872
});
@@ -109,11 +113,6 @@
109113
}
110114
111115
requestSuccess[roleName] = true;
112-
113-
// Reload page after a short delay to show success and update entitlements
114-
setTimeout(() => {
115-
window.location.reload();
116-
}, 1500);
117116
} catch (error) {
118117
requestErrors[roleName] =
119118
error instanceof Error ? error.message : "Failed to submit request";
@@ -732,27 +731,19 @@
732731
>
733732
{roleReq.role}
734733
</p>
734+
<p
735+
class="mt-1 font-mono text-xs text-blue-600 dark:text-blue-400"
736+
>
737+
{roleReq.endpoint}
738+
</p>
735739
</div>
736740
{#if !userHasRole(roleReq.role)}
737741
<div class="ml-4 flex flex-col items-end gap-1">
738742
{#if requestSuccess[roleReq.role]}
739743
<div
740-
class="flex items-center gap-1 rounded-lg bg-green-100 px-3 py-2 text-xs font-medium text-green-800 dark:bg-green-900/30 dark:text-green-300"
744+
class="rounded-lg bg-green-100 px-3 py-2 text-xs text-green-800 dark:bg-green-900/30 dark:text-green-300"
741745
>
742-
<svg
743-
class="h-3 w-3"
744-
fill="none"
745-
stroke="currentColor"
746-
viewBox="0 0 24 24"
747-
>
748-
<path
749-
stroke-linecap="round"
750-
stroke-linejoin="round"
751-
stroke-width="2"
752-
d="M5 13l4 4L19 7"
753-
/>
754-
</svg>
755-
Request Submitted
746+
Thanks, request generated. Ask your admin to accept it on the <a href="/rbac/entitlement-requests" class="font-semibold underline hover:text-green-900 dark:hover:text-green-200">Entitlement Requests page</a>.
756747
</div>
757748
{:else}
758749
<button

0 commit comments

Comments
 (0)