diff --git a/apps/red-ui/src/app/app-routing.module.ts b/apps/red-ui/src/app/app-routing.module.ts
index f7006e19f..82e164ea3 100644
--- a/apps/red-ui/src/app/app-routing.module.ts
+++ b/apps/red-ui/src/app/app-routing.module.ts
@@ -22,6 +22,7 @@ import { Roles } from '@users/roles';
import { mainGuard } from '@utils/main.guard';
import { webViewerLoadedGuard } from './modules/pdf-viewer/services/webviewer-loaded.guard';
import { ACTIVE_DOSSIERS_SERVICE } from './tokens';
+import { AuthErrorComponent } from '@components/auth-error/auth-error.component';
const dossierTemplateIdRoutes: IqserRoutes = [
{
@@ -209,6 +210,11 @@ const routes: IqserRoutes = [
component: BaseScreenComponent,
children: mainRoutes,
},
+ {
+ path: 'auth-error',
+ component: AuthErrorComponent,
+ canActivate: [doesNotHaveAnyRole()],
+ },
{
path: '**',
redirectTo: 'main',
diff --git a/apps/red-ui/src/app/app.module.ts b/apps/red-ui/src/app/app.module.ts
index 80b09e331..90d3d1daa 100644
--- a/apps/red-ui/src/app/app.module.ts
+++ b/apps/red-ui/src/app/app.module.ts
@@ -68,11 +68,13 @@ import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { PdfViewerModule } from './modules/pdf-viewer/pdf-viewer.module';
import { ACTIVE_DOSSIERS_SERVICE, ARCHIVED_DOSSIERS_SERVICE } from './tokens';
+import { AuthErrorComponent } from '@components/auth-error/auth-error.component';
export const appModuleFactory = (config: AppConfig) => {
@NgModule({
declarations: [
AppComponent,
+ AuthErrorComponent,
NotificationsComponent,
SpotlightSearchComponent,
BreadcrumbsComponent,
diff --git a/apps/red-ui/src/app/components/auth-error/auth-error.component.html b/apps/red-ui/src/app/components/auth-error/auth-error.component.html
new file mode 100644
index 000000000..83eb55942
--- /dev/null
+++ b/apps/red-ui/src/app/components/auth-error/auth-error.component.html
@@ -0,0 +1,19 @@
+
diff --git a/apps/red-ui/src/app/components/auth-error/auth-error.component.scss b/apps/red-ui/src/app/components/auth-error/auth-error.component.scss
new file mode 100644
index 000000000..427b131fa
--- /dev/null
+++ b/apps/red-ui/src/app/components/auth-error/auth-error.component.scss
@@ -0,0 +1,3 @@
+section {
+ padding: 24px;
+}
diff --git a/apps/red-ui/src/app/components/auth-error/auth-error.component.ts b/apps/red-ui/src/app/components/auth-error/auth-error.component.ts
new file mode 100644
index 000000000..5445ec196
--- /dev/null
+++ b/apps/red-ui/src/app/components/auth-error/auth-error.component.ts
@@ -0,0 +1,17 @@
+import { Component } from '@angular/core';
+import { UserService } from '@users/user.service';
+import { getConfig } from '@iqser/common-ui';
+import { AppConfig } from '@red/domain';
+
+@Component({
+ selector: 'redaction-auth-error',
+ templateUrl: './auth-error.component.html',
+ styleUrls: ['./auth-error.component.scss'],
+})
+export class AuthErrorComponent {
+ readonly #config = getConfig();
+ readonly adminName = this.#config.ADMIN_CONTACT_NAME;
+ readonly adminUrl = this.#config.ADMIN_CONTACT_URL;
+
+ constructor(readonly userService: UserService) {}
+}
diff --git a/apps/red-ui/src/assets/i18n/redact/de.json b/apps/red-ui/src/assets/i18n/redact/de.json
index dd9480b13..deb95a7fa 100644
--- a/apps/red-ui/src/assets/i18n/redact/de.json
+++ b/apps/red-ui/src/assets/i18n/redact/de.json
@@ -458,6 +458,13 @@
},
"to": "bis"
},
+ "auth-error": {
+ "heading": "Ihr Benutzer verfügt nicht über die erforderlichen RED-*-Rollen, um auf diese Applikation zugreifen zu können. Bitte kontaktieren Sie Ihren Admin, um den Zugang anzufordern!",
+ "heading-with-link": "Ihr Benutzer verfügt nicht über die erforderlichen RED-*-Rollen, um auf diese Applikation zugreifen zu können. Bitte kontaktieren Sie Ihren Admin, um den Zugang anzufordern!",
+ "heading-with-name": "Ihr Benutzer verfügt nicht über die erforderlichen RED-*-Rollen, um auf diese Applikation zugreifen zu können. Bitte kontaktieren Sie {adminName}, um den Zugang anzufordern!",
+ "heading-with-name-and-link": "Ihr Benutzer verfügt nicht über die erforderlichen RED-*-Rollen, um auf diese Applikation zugreifen zu können. Bitte kontaktieren Sie {adminName}, um den Zugang anzufordern!",
+ "logout": "Ausloggen"
+ },
"change-legal-basis-dialog": {
"actions": {
"cancel": "Abbrechen",
diff --git a/apps/red-ui/src/assets/i18n/redact/en.json b/apps/red-ui/src/assets/i18n/redact/en.json
index 347617180..0f54c8ea4 100644
--- a/apps/red-ui/src/assets/i18n/redact/en.json
+++ b/apps/red-ui/src/assets/i18n/redact/en.json
@@ -458,6 +458,13 @@
},
"to": "to"
},
+ "auth-error": {
+ "heading": "Your user is successfully logged in but has no role assigned yet. Please contact your RedactManager administrator to assign appropriate roles.",
+ "heading-with-link": "Your user is successfully logged in but has no role assigned yet. Please contact your RedactManager administrator to assign appropriate roles!",
+ "heading-with-name": "Your user is successfully logged in but has no role assigned yet. Please contact {adminName} to assign appropriate roles.",
+ "heading-with-name-and-link": "Your user is successfully logged in but has no role assigned yet. Please contact {adminName} to assign appropriate roles.",
+ "logout": "Logout"
+ },
"change-legal-basis-dialog": {
"actions": {
"cancel": "Cancel",
diff --git a/apps/red-ui/src/assets/i18n/scm/de.json b/apps/red-ui/src/assets/i18n/scm/de.json
index 5272784ff..4612f76d0 100644
--- a/apps/red-ui/src/assets/i18n/scm/de.json
+++ b/apps/red-ui/src/assets/i18n/scm/de.json
@@ -458,6 +458,13 @@
},
"to": "bis"
},
+ "auth-error": {
+ "heading": "Ihr Benutzer verfügt nicht über die erforderlichen RED-*-Rollen, um auf diese Applikation zugreifen zu können. Bitte kontaktieren Sie Ihren Admin, um den Zugang anzufordern!",
+ "heading-with-link": "Ihr Benutzer verfügt nicht über die erforderlichen RED-*-Rollen, um auf diese Applikation zugreifen zu können. Bitte kontaktieren Sie Ihren Admin, um den Zugang anzufordern!",
+ "heading-with-name": "Ihr Benutzer verfügt nicht über die erforderlichen RED-*-Rollen, um auf diese Applikation zugreifen zu können. Bitte kontaktieren Sie {adminName}, um den Zugang anzufordern!",
+ "heading-with-name-and-link": "Ihr Benutzer verfügt nicht über die erforderlichen RED-*-Rollen, um auf diese Applikation zugreifen zu können. Bitte kontaktieren Sie {adminName}, um den Zugang anzufordern!",
+ "logout": "Ausloggen"
+ },
"change-legal-basis-dialog": {
"actions": {
"cancel": "Abbrechen",
diff --git a/apps/red-ui/src/assets/i18n/scm/en.json b/apps/red-ui/src/assets/i18n/scm/en.json
index eaac3bae8..021e9fece 100644
--- a/apps/red-ui/src/assets/i18n/scm/en.json
+++ b/apps/red-ui/src/assets/i18n/scm/en.json
@@ -458,6 +458,13 @@
},
"to": "to"
},
+ "auth-error": {
+ "heading": "Your user is successfully logged in but has no role assigned yet. Please contact your RedactManager administrator to assign appropriate roles.",
+ "heading-with-link": "Your user is successfully logged in but has no role assigned yet. Please contact your RedactManager administrator to assign appropriate roles!",
+ "heading-with-name": "Your user is successfully logged in but has no role assigned yet. Please contact {adminName} to assign appropriate roles.",
+ "heading-with-name-and-link": "Your user is successfully logged in but has no role assigned yet. Please contact {adminName} to assign appropriate roles.",
+ "logout": "Logout"
+ },
"change-legal-basis-dialog": {
"actions": {
"cancel": "Cancel",