RED-6713: show previous signed in domains

This commit is contained in:
Dan Percic 2023-05-21 18:55:31 +03:00
parent d3231877d9
commit ed02112c4f
29 changed files with 57 additions and 56 deletions

View File

@ -8,7 +8,7 @@ import {
IqserAuthGuard,
IqserPermissionsGuard,
IqserRoutes,
TenantResolveComponent,
TenantSelectComponent,
} from '@iqser/common-ui';
import { RedRoleGuard } from '@users/red-role.guard';
import { BaseScreenComponent } from '@components/base-screen/base-screen.component';
@ -211,7 +211,7 @@ const routes: IqserRoutes = [
path: '',
pathMatch: 'full',
canActivate: [ifNotLoggedIn],
component: TenantResolveComponent,
component: TenantSelectComponent,
},
{
path: ':tenant',

View File

@ -126,7 +126,7 @@ export class BaseScreenComponent {
#search(query: string, dossierIds: string[], onlyActive = false) {
const queryParams = { query, dossierIds: dossierIds.join(','), onlyActive };
this._router.navigate([`/${this._tenantsService.currentTenant}/main/search`], { queryParams }).then();
this._router.navigate([`/${this._tenantsService.activeTenantId}/main/search`], { queryParams }).then();
}
#searchThisDossier(query: string) {

View File

@ -34,7 +34,7 @@ export class DossierFilesGuard implements CanActivate {
}
if (!dossiersService.has(dossierId)) {
await this._router.navigate([`/${this._tenantsService.currentTenant}/main`, dossierTemplateId]);
await this._router.navigate([`/${this._tenantsService.activeTenantId}/main`, dossierTemplateId]);
return false;
}

View File

@ -10,7 +10,7 @@ export function templateExistsWhenEnteringAdmin(): CanActivateFn {
const dossierTemplate = inject(DashboardStatsService).find(dossierTemplateId);
if (!dossierTemplate) {
await inject(Router).navigate([inject(TenantsService).currentTenant, 'main', 'admin', 'dossier-templates']);
await inject(Router).navigate([inject(TenantsService).activeTenantId, 'main', 'admin', 'dossier-templates']);
return false;
}
return true;
@ -23,7 +23,7 @@ export function templateExistsWhenEnteringDossierList(): CanActivateFn {
const dossierTemplateStats = inject(DashboardStatsService).find(dossierTemplateId);
if (!dossierTemplateStats || dossierTemplateStats.isEmpty) {
await inject(Router).navigate([inject(TenantsService).currentTenant, 'main']);
await inject(Router).navigate([inject(TenantsService).activeTenantId, 'main']);
return false;
}
return true;

View File

@ -35,7 +35,7 @@ export class DossiersGuard implements CanActivate {
const dossierTemplateStats = this._dashboardStatsService.find(dossierTemplateId);
if (isArchive && dossierTemplateStats?.numberOfArchivedDossiers === 0) {
await this._router.navigate([this._tenantsService.currentTenant, 'main', dossierTemplateId, 'dossiers']);
await this._router.navigate([this._tenantsService.activeTenantId, 'main', dossierTemplateId, 'dossiers']);
return false;
}

View File

@ -12,7 +12,7 @@ export function entityExistsGuard(): CanActivateFn {
if (!inject(DictionariesMapService).get(dossierTemplateId, type)) {
const dossierTemplate = inject(DossierTemplatesService).find(dossierTemplateId);
await inject(Router).navigate([`/${inject(TenantsService).currentTenant}/${dossierTemplate.routerLink}/entities`]);
await inject(Router).navigate([`/${inject(TenantsService).activeTenantId}/${dossierTemplate.routerLink}/entities`]);
return false;
}

View File

@ -14,7 +14,7 @@ export function watermarkExistsGuard(): CanActivateFn {
}
await inject(Router).navigate([
inject(TenantsService).currentTenant,
inject(TenantsService).activeTenantId,
'main',
'admin',
'dossier-templates',

View File

@ -47,7 +47,7 @@ export class UserProfileScreenComponent extends BaseFormComponent implements OnI
) {
super();
this._loadingService.start();
const tenant = inject(TenantsService).currentTenant;
const tenant = inject(TenantsService).activeTenantId;
const realmUrl = `${getConfig<AppConfig>().OAUTH_URL}/realms/${tenant}`;
this.changePasswordUrl = `${realmUrl}/account/password`;
}

View File

@ -42,7 +42,7 @@ export class BaseEntityScreenComponent {
this._loadingService.start();
const dossierTemplate = this._dossierTemplatesService.find(this.#dossierTemplateId);
await firstValueFrom(this._dictionaryService.deleteDictionaries([this.#entityType], this.#dossierTemplateId));
await this._router.navigate([`/${this._tenantsService.currentTenant}/${dossierTemplate.routerLink}/entities`]);
await this._router.navigate([`/${this._tenantsService.activeTenantId}/${dossierTemplate.routerLink}/entities`]);
this._loadingService.stop();
});
}

View File

@ -151,7 +151,7 @@ export class WatermarkScreenComponent implements OnInit {
);
if (!watermark.id) {
await this._router.navigate([
`/${this._tenantsService.currentTenant}/main/admin/dossier-templates/${this.#dossierTemplateId}/watermarks/${
`/${this._tenantsService.activeTenantId}/main/admin/dossier-templates/${this.#dossierTemplateId}/watermarks/${
updatedWatermark.id
}`,
]);

View File

@ -51,7 +51,7 @@ export class DossierTemplateActionsComponent implements OnInit {
const success = await firstValueFrom(this._dossierTemplatesService.delete([this.dossierTemplateId]));
if (success) {
await this._router.navigate([this._tenantsService.currentTenant, 'main', 'admin']);
await this._router.navigate([this._tenantsService.activeTenantId, 'main', 'admin']);
}
this._loadingService.stop();

View File

@ -1,5 +1,5 @@
<iqser-page-header
(closeAction)="router.navigate([tenantsService.currentTenant + '/' + dossier.dossiersListRouterLink])"
(closeAction)="router.navigate([tenantsService.activeTenantId + '/' + dossier.dossiersListRouterLink])"
[actionConfigs]="actionConfigs"
[helpModeKey]="'document'"
[showCloseButton]="true"

View File

@ -771,7 +771,7 @@ export class FilePreviewScreenComponent
private _navigateToDossier() {
this._logger.info('Navigating to ', this.state.dossier.dossierName);
return this._router.navigate([`/${this._tenantsService.currentTenant}${this.state.dossier.routerLink}`]);
return this._router.navigate([`/${this._tenantsService.activeTenantId}${this.state.dossier.routerLink}`]);
}
#highlightSelectedAnnotations(newAnnotations: AnnotationWrapper[]) {

View File

@ -333,7 +333,7 @@ export class FileActionsComponent implements OnChanges {
try {
const dossier = this._activeDossiersService.find(this.file.dossierId);
await firstValueFrom(this._fileManagementService.delete([this.file], this.file.dossierId));
await this._injector.get(Router).navigate([`/${this._tenantsService.currentTenant}${dossier.routerLink}`]);
await this._injector.get(Router).navigate([`/${this._tenantsService.activeTenantId}${dossier.routerLink}`]);
} catch (error) {
this._injector.get(Toaster).error(_('error.http.generic'), { params: error });
}

View File

@ -153,7 +153,7 @@ export class EditDossierGeneralInfoComponent implements OnInit, EditDossierSecti
this._loadingService.start();
await firstValueFrom(this._trashService.deleteDossier(this.dossier));
this._editDossierDialogRef.close();
await this._router.navigate([`/${this._tenantsService.currentTenant}${this.dossier.dossiersListRouterLink}`]);
await this._router.navigate([`/${this._tenantsService.activeTenantId}${this.dossier.dossiersListRouterLink}`]);
this._loadingService.stop();
this._toaster.success(_('edit-dossier-dialog.delete-successful'), {
params: {

View File

@ -62,7 +62,7 @@ export class FileDownloadBtnComponent implements OnChanges {
await downloadRequest
.then(() =>
this._toaster.info(_('download-status.queued'), {
params: { downloadHref: `/ui/${this._tenantsService.currentTenant}/main/downloads` },
params: { downloadHref: `/ui/${this._tenantsService.activeTenantId}/main/downloads` },
}),
)
.catch(() => this._toaster.error(_('download-status.error')));

View File

@ -99,7 +99,7 @@ export class ExpandableFileActionsComponent implements OnChanges {
...result,
});
this._toaster.info(_('download-status.queued'), {
params: { downloadHref: `/ui/${this._tenantsService.currentTenant}/main/downloads` },
params: { downloadHref: `/ui/${this._tenantsService.activeTenantId}/main/downloads` },
});
}
}

View File

@ -83,7 +83,7 @@ export class AddDossierDialogComponent extends BaseDialogComponent implements On
this._loadingService.start();
const savedDossier = await firstValueFrom(this._activeDossiersService.createOrUpdate(this._formToObject()));
if (savedDossier) {
await this._router.navigate([`/${this._tenantsService.currentTenant}${savedDossier.routerLink}`]);
await this._router.navigate([`/${this._tenantsService.activeTenantId}${savedDossier.routerLink}`]);
if (options?.addMembers) {
this._dialogService.openDialog('editDossier', {
dossierId: savedDossier.id,

View File

@ -36,7 +36,7 @@ export class FileDownloadService extends EntitiesService<IDownloadStatus, Downlo
const token = await this.generateToken(status.storageId);
const anchor = document.createElement('a');
anchor.href = `${this._configService.values.API_URL}/async/download/with-ott/${token.value}?tenantId=${encodeURIComponent(
this._tenantsService.currentTenant,
this._tenantsService.activeTenantId,
)}`;
anchor.download = status.filename;
anchor.target = '_blank';

View File

@ -42,7 +42,7 @@ export class ArchivedDossiersService extends DossiersService {
if (!this.#activeDossiersService.all.find(d => d.dossierTemplateId === dossierTemplateId)) {
route = route.replace(DOSSIERS_ROUTE, ARCHIVE_ROUTE);
}
await this.#router.navigate([`/${this.#tenantsService.currentTenant}${route}`]);
await this.#router.navigate([`/${this.#tenantsService.activeTenantId}${route}`]);
}),
catchError(showArchiveFailedToast),
);

View File

@ -78,7 +78,7 @@ export class NotificationsService extends EntitiesService<INotification, Notific
const dossier = this._dossiersCacheService.get(dossierId);
const fileName = notification.target.fileName;
const dossierName = notification.target?.dossierName ?? dossier?.dossierName;
const downloadHref = `/ui/${this._tenantsService.currentTenant}/main/downloads`;
const downloadHref = `/ui/${this._tenantsService.activeTenantId}/main/downloads`;
return this._translateService.instant(translation, {
fileHref: this._getFileHref(dossier, fileId),
@ -95,7 +95,7 @@ export class NotificationsService extends EntitiesService<INotification, Notific
}
private _getDossierHref(dossier: Dossier): string {
return dossier ? `${this._baseHref}/${this._tenantsService.currentTenant}${dossier.routerLink}` : null;
return dossier ? `${this._baseHref}/${this._tenantsService.activeTenantId}${dossier.routerLink}` : null;
}
private _getUsername(userId: string | undefined) {

View File

@ -23,7 +23,7 @@ export class RouterHistoryService {
navigateToLastDossiersScreen(): void {
if (this._router.url === decodeURI(this._lastDossiersScreen)) {
this._router.navigate(['/' + this._tenantsService.currentTenant]);
this._router.navigate(['/' + this._tenantsService.activeTenantId]);
} else {
const url = decodeURI(this._lastDossiersScreen).split('?')[0];
// todo links

View File

@ -12,14 +12,14 @@ export class RedRoleGuard extends IqserRoleGuard {
const currentUser = this._userService.currentUser;
if (!currentUser?.hasAnyRole) {
await this._router.navigate([`/${this._tenantsService.currentTenant}/auth-error`]);
await this._router.navigate([`/${this._tenantsService.activeTenantId}/auth-error`]);
this._loadingService.stop();
return false;
}
// we have at least 1 RED Role -> if it's not user he must be an admin
if (currentUser.isUserAdmin && !currentUser.isAdmin && state.url.includes('admin') && !state.url.includes('users')) {
await this._router.navigate([`/${this._tenantsService.currentTenant}/main/admin/users`]);
await this._router.navigate([`/${this._tenantsService.activeTenantId}/main/admin/users`]);
return false;
}
@ -29,7 +29,7 @@ export class RedRoleGuard extends IqserRoleGuard {
!currentUser.isUser &&
!(state.url.includes('/main/admin/users') || state.url.includes('/main/account'))
) {
await this._router.navigate([`/${this._tenantsService.currentTenant}/main/admin/users`]);
await this._router.navigate([`/${this._tenantsService.activeTenantId}/main/admin/users`]);
return false;
}
@ -38,9 +38,9 @@ export class RedRoleGuard extends IqserRoleGuard {
return true;
}
if (!currentUser.isUser) {
await this._router.navigate([`/${this._tenantsService.currentTenant}/main/admin`]);
await this._router.navigate([`/${this._tenantsService.activeTenantId}/main/admin`]);
} else {
await this._router.navigate([`/${this._tenantsService.currentTenant}`]);
await this._router.navigate([`/${this._tenantsService.activeTenantId}`]);
}
return false;
}

View File

@ -53,10 +53,11 @@ export const mainResolver: ResolveFn<void> = async () => {
const lastDossierTemplate = userPreferenceService.getLastDossierTemplate();
if (lastDossierTemplate) {
redirectToLastDossierTemplate(baseHref, tenantsService.currentTenant, lastDossierTemplate);
redirectToLastDossierTemplate(baseHref, tenantsService.activeTenantId, lastDossierTemplate);
}
loadingService.stop();
tenantsService.storeTenant(userService.currentUser.email);
logger.info('[ROUTES] Main resolver finished!');
};

View File

@ -2065,13 +2065,13 @@
"title": "Authentifizierung aktivieren"
},
"tenant-resolve": {
"actions": {
"save": "Proceed"
"contact-administrator": "",
"header": {
"first-time": "",
"join-another-domain": "",
"sign-in-previous-domain": ""
},
"form": {
"tenant-placeholder": "Select a tenant ..."
},
"header": "Select your Tenant"
"input-placeholder": ""
},
"time": {
"days": "{days} {days, plural, one{Tag} other{Tage}}",

View File

@ -2065,13 +2065,13 @@
"title": "Enable Authentication"
},
"tenant-resolve": {
"actions": {
"save": "Proceed"
"contact-administrator": "Cannot remember the domain's name? <b>Please contact your administrator.</b>",
"header": {
"first-time": "Sign in for the first time to a domain",
"join-another-domain": "Or join another domain",
"sign-in-previous-domain": "Sign in to a previously used domain"
},
"form": {
"tenant-placeholder": "Select a tenant ..."
},
"header": "Select your Tenant"
"input-placeholder": "your domain's name"
},
"time": {
"days": "{days} {days, plural, one{day} other{days}}",

View File

@ -2065,13 +2065,13 @@
"title": "Authentifizierung aktivieren"
},
"tenant-resolve": {
"actions": {
"save": "Proceed"
"contact-administrator": "",
"header": {
"first-time": "",
"join-another-domain": "",
"sign-in-previous-domain": ""
},
"form": {
"tenant-placeholder": "Select a tenant ..."
},
"header": "Select your Tenant"
"input-placeholder": ""
},
"time": {
"days": "{days} {days, plural, one{Tag} other{Tage}}",

View File

@ -2065,13 +2065,13 @@
"title": "Enable Authentication"
},
"tenant-resolve": {
"actions": {
"save": "Proceed"
"contact-administrator": "Cannot remember the domain's name? <b>Please contact your administrator.</b>",
"header": {
"first-time": "Sign in for the first time to a domain",
"join-another-domain": "Or join another domain",
"sign-in-previous-domain": "Sign in to a previously used domain"
},
"form": {
"tenant-placeholder": "Select a tenant ..."
},
"header": "Select your Tenant"
"input-placeholder": "your domain's name"
},
"time": {
"days": "{days} {days, plural, one{day} other{days}}",

@ -1 +1 @@
Subproject commit 721d3e3b1a0e933afe76914b1f3b80097e40a6de
Subproject commit 223fbe688c512a5473a9e791acbcf694682f6ffa