diff --git a/EstateManagementUI.BlazorServer/Common/Helpers.cs b/EstateManagementUI.BlazorServer/Common/Helpers.cs index bda45aef..f3107921 100644 --- a/EstateManagementUI.BlazorServer/Common/Helpers.cs +++ b/EstateManagementUI.BlazorServer/Common/Helpers.cs @@ -150,6 +150,12 @@ public static void NavigateToErrorPage(this NavigationManager navigationManager) { navigationManager.NavigateTo("/error", replace: true); } + + public static void NavigateToAccessDeniedPage(this NavigationManager navigationManager) + { + navigationManager.NavigateTo("/access-denied", replace: true); + } + public static void NavigateToEntryPage(this NavigationManager navigationManager) { navigationManager.NavigateTo("/entry", replace: true); diff --git a/EstateManagementUI.BlazorServer/Components/Pages/AccessDenied.razor b/EstateManagementUI.BlazorServer/Components/Pages/AccessDenied.razor new file mode 100644 index 00000000..2df0ecee --- /dev/null +++ b/EstateManagementUI.BlazorServer/Components/Pages/AccessDenied.razor @@ -0,0 +1,80 @@ +@page "/access-denied" +@inject IConfiguration Configuration + +Access Denied + +
+
+
+
+ +
+
+ + + +
+
+ + +

Access Denied

+ + +

+ You don't have permission to access this page or perform this action. + If you believe this is an error, please contact your administrator. +

+ + +
+
+ + + +
+

Why am I seeing this?

+

+ Your current role or permissions do not allow access to this resource. + Contact your system administrator to request the necessary permissions. +

+
+
+
+ + +
+ + + + + Go to Home + + +
+ + +
+

+ Need help? Contact your administrator or support team at + @SupportEmail +

+
+
+
+
+
+ +@code { + private const string DefaultSupportEmail = "support@example.com"; + private string SupportEmail { get; set; } = DefaultSupportEmail; + + protected override void OnInitialized() + { + SupportEmail = Configuration.GetValue("AppSettings:SupportEmail", DefaultSupportEmail); + } +} diff --git a/EstateManagementUI.BlazorServer/Components/Permissions/AuthorizedComponentBase.cs b/EstateManagementUI.BlazorServer/Components/Permissions/AuthorizedComponentBase.cs index dd90846b..da0751a9 100644 --- a/EstateManagementUI.BlazorServer/Components/Permissions/AuthorizedComponentBase.cs +++ b/EstateManagementUI.BlazorServer/Components/Permissions/AuthorizedComponentBase.cs @@ -28,8 +28,7 @@ protected async Task RequirePermission(PermissionSection permissionSection, Perm Boolean hasPermission = await this.PermissionService.HasPermissionAsync(permissionSection, permissionFunction); if (hasPermission == false) { - // TODO: Navigate to access denied page - this.NavigationManager.NavigateToErrorPage(); + this.NavigationManager.NavigateToAccessDeniedPage(); return; } }