mirror of
https://github.com/zitadel/zitadel.git
synced 2025-03-01 00:37:24 +00:00
fix(console): show warn on idp removal (#6004)
* fix: show warn on idp removal * de, bg * observable for refresh --------- Co-authored-by: Elio Bischof <elio@zitadel.com>
This commit is contained in:
parent
5cba5cd635
commit
40a073fd33
@ -1,11 +1,11 @@
|
|||||||
import { SelectionModel } from '@angular/cdk/collections';
|
import { SelectionModel } from '@angular/cdk/collections';
|
||||||
import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';
|
import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';
|
||||||
import { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog';
|
import { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog';
|
||||||
import { MatLegacyTableDataSource as MatTableDataSource } from '@angular/material/legacy-table';
|
import { MatLegacyTableDataSource as MatTableDataSource } from '@angular/material/legacy-table';
|
||||||
import { Router, RouterLink } from '@angular/router';
|
import { Router, RouterLink } from '@angular/router';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { Duration } from 'google-protobuf/google/protobuf/duration_pb';
|
import { Duration } from 'google-protobuf/google/protobuf/duration_pb';
|
||||||
import { BehaviorSubject, Observable } from 'rxjs';
|
import { BehaviorSubject, Observable, Subject } from 'rxjs';
|
||||||
import {
|
import {
|
||||||
ListProvidersRequest as AdminListProvidersRequest,
|
ListProvidersRequest as AdminListProvidersRequest,
|
||||||
ListProvidersResponse as AdminListProvidersResponse,
|
ListProvidersResponse as AdminListProvidersResponse,
|
||||||
@ -42,7 +42,7 @@ import { WarnDialogComponent } from '../warn-dialog/warn-dialog.component';
|
|||||||
templateUrl: './idp-table.component.html',
|
templateUrl: './idp-table.component.html',
|
||||||
styleUrls: ['./idp-table.component.scss'],
|
styleUrls: ['./idp-table.component.scss'],
|
||||||
})
|
})
|
||||||
export class IdpTableComponent implements OnInit {
|
export class IdpTableComponent implements OnInit, OnDestroy {
|
||||||
@Input() public serviceType!: PolicyComponentServiceType;
|
@Input() public serviceType!: PolicyComponentServiceType;
|
||||||
@Input() service!: AdminService | ManagementService;
|
@Input() service!: AdminService | ManagementService;
|
||||||
@ViewChild(PaginatorComponent) public paginator!: PaginatorComponent;
|
@ViewChild(PaginatorComponent) public paginator!: PaginatorComponent;
|
||||||
@ -62,6 +62,8 @@ export class IdpTableComponent implements OnInit {
|
|||||||
public IDPStylingType: any = IDPStylingType;
|
public IDPStylingType: any = IDPStylingType;
|
||||||
public loginPolicy!: LoginPolicy.AsObject;
|
public loginPolicy!: LoginPolicy.AsObject;
|
||||||
|
|
||||||
|
private reloadIDPs$: Subject<void> = new Subject();
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private workflowService: OverlayWorkflowService,
|
private workflowService: OverlayWorkflowService,
|
||||||
public translate: TranslateService,
|
public translate: TranslateService,
|
||||||
@ -72,6 +74,16 @@ export class IdpTableComponent implements OnInit {
|
|||||||
this.selection.changed.subscribe(() => {
|
this.selection.changed.subscribe(() => {
|
||||||
this.changedSelection.emit(this.selection.selected);
|
this.changedSelection.emit(this.selection.selected);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
this.reloadIDPs$.subscribe(() => {
|
||||||
|
this.getIdps()
|
||||||
|
.then((resp) => {
|
||||||
|
this.idps = resp;
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
this.toast.showError(error);
|
||||||
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
@ -85,6 +97,10 @@ export class IdpTableComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ngOnDestroy(): void {
|
||||||
|
this.reloadIDPs$.complete();
|
||||||
|
}
|
||||||
|
|
||||||
public isAllSelected(): boolean {
|
public isAllSelected(): boolean {
|
||||||
const numSelected = this.selection.selected.length;
|
const numSelected = this.selection.selected.length;
|
||||||
const numRows = this.dataSource.data.length;
|
const numRows = this.dataSource.data.length;
|
||||||
@ -332,13 +348,7 @@ export class IdpTableComponent implements OnInit {
|
|||||||
this.toast.showInfo('IDP.TOAST.ADDED', true);
|
this.toast.showInfo('IDP.TOAST.ADDED', true);
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
this.getIdps()
|
this.reloadIDPs$.next();
|
||||||
.then((resp) => {
|
|
||||||
this.idps = resp;
|
|
||||||
})
|
|
||||||
.catch((error) => {
|
|
||||||
this.toast.showError(error);
|
|
||||||
});
|
|
||||||
}, 2000);
|
}, 2000);
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
@ -351,13 +361,7 @@ export class IdpTableComponent implements OnInit {
|
|||||||
.then(() => {
|
.then(() => {
|
||||||
this.toast.showInfo('IDP.TOAST.ADDED', true);
|
this.toast.showInfo('IDP.TOAST.ADDED', true);
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
this.getIdps()
|
this.reloadIDPs$.next();
|
||||||
.then((resp) => {
|
|
||||||
this.idps = resp;
|
|
||||||
})
|
|
||||||
.catch((error) => {
|
|
||||||
this.toast.showError(error);
|
|
||||||
});
|
|
||||||
}, 2000);
|
}, 2000);
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
@ -370,13 +374,7 @@ export class IdpTableComponent implements OnInit {
|
|||||||
.then(() => {
|
.then(() => {
|
||||||
this.toast.showInfo('IDP.TOAST.ADDED', true);
|
this.toast.showInfo('IDP.TOAST.ADDED', true);
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
this.getIdps()
|
this.reloadIDPs$.next();
|
||||||
.then((resp) => {
|
|
||||||
this.idps = resp;
|
|
||||||
})
|
|
||||||
.catch((error) => {
|
|
||||||
this.toast.showError(error);
|
|
||||||
});
|
|
||||||
}, 2000);
|
}, 2000);
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
@ -385,72 +383,71 @@ export class IdpTableComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public removeIdp(idp: Provider.AsObject): Promise<any> {
|
public removeIdp(idp: Provider.AsObject): void {
|
||||||
switch (this.serviceType) {
|
const dialogRef = this.dialog.open(WarnDialogComponent, {
|
||||||
case PolicyComponentServiceType.MGMT:
|
data: {
|
||||||
if (this.isDefault) {
|
confirmKey: 'ACTIONS.CONTINUE',
|
||||||
return this.addLoginPolicy()
|
cancelKey: 'ACTIONS.CANCEL',
|
||||||
.then(() => {
|
titleKey: 'IDP.REMOVE_WARN_TITLE',
|
||||||
this.loginPolicy.isDefault = false;
|
descriptionKey: 'IDP.REMOVE_WARN_DESCRIPTION',
|
||||||
return (this.service as ManagementService)
|
},
|
||||||
|
width: '400px',
|
||||||
|
});
|
||||||
|
|
||||||
|
dialogRef.afterClosed().subscribe((resp) => {
|
||||||
|
if (resp) {
|
||||||
|
switch (this.serviceType) {
|
||||||
|
case PolicyComponentServiceType.MGMT:
|
||||||
|
if (this.isDefault) {
|
||||||
|
this.addLoginPolicy()
|
||||||
|
.then(() => {
|
||||||
|
this.loginPolicy.isDefault = false;
|
||||||
|
return (this.service as ManagementService)
|
||||||
|
.removeIDPFromLoginPolicy(idp.id)
|
||||||
|
.then(() => {
|
||||||
|
this.toast.showInfo('IDP.TOAST.REMOVED', true);
|
||||||
|
setTimeout(() => {
|
||||||
|
this.reloadIDPs$.next();
|
||||||
|
}, 2000);
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
this.toast.showError(error);
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
this.toast.showError(error);
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
(this.service as ManagementService)
|
||||||
.removeIDPFromLoginPolicy(idp.id)
|
.removeIDPFromLoginPolicy(idp.id)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.toast.showInfo('IDP.TOAST.REMOVED', true);
|
this.toast.showInfo('IDP.TOAST.REMOVED', true);
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
this.getIdps()
|
this.reloadIDPs$.next();
|
||||||
.then((resp) => {
|
|
||||||
this.idps = resp;
|
|
||||||
})
|
|
||||||
.catch((error) => {
|
|
||||||
this.toast.showError(error);
|
|
||||||
});
|
|
||||||
}, 2000);
|
}, 2000);
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
this.toast.showError(error);
|
this.toast.showError(error);
|
||||||
});
|
});
|
||||||
})
|
break;
|
||||||
.catch((error) => {
|
}
|
||||||
this.toast.showError(error);
|
case PolicyComponentServiceType.ADMIN:
|
||||||
});
|
(this.service as AdminService)
|
||||||
} else {
|
.removeIDPFromLoginPolicy(idp.id)
|
||||||
return (this.service as ManagementService)
|
.then(() => {
|
||||||
.removeIDPFromLoginPolicy(idp.id)
|
this.toast.showInfo('IDP.TOAST.REMOVED', true);
|
||||||
.then(() => {
|
setTimeout(() => {
|
||||||
this.toast.showInfo('IDP.TOAST.REMOVED', true);
|
this.reloadIDPs$.next();
|
||||||
setTimeout(() => {
|
}, 2000);
|
||||||
this.getIdps()
|
})
|
||||||
.then((resp) => {
|
.catch((error) => {
|
||||||
this.idps = resp;
|
this.toast.showError(error);
|
||||||
})
|
});
|
||||||
.catch((error) => {
|
break;
|
||||||
this.toast.showError(error);
|
|
||||||
});
|
|
||||||
}, 2000);
|
|
||||||
})
|
|
||||||
.catch((error) => {
|
|
||||||
this.toast.showError(error);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
case PolicyComponentServiceType.ADMIN:
|
}
|
||||||
return (this.service as AdminService)
|
});
|
||||||
.removeIDPFromLoginPolicy(idp.id)
|
|
||||||
.then(() => {
|
|
||||||
this.toast.showInfo('IDP.TOAST.REMOVED', true);
|
|
||||||
setTimeout(() => {
|
|
||||||
this.getIdps()
|
|
||||||
.then((resp) => {
|
|
||||||
this.idps = resp;
|
|
||||||
})
|
|
||||||
.catch((error) => {
|
|
||||||
this.toast.showError(error);
|
|
||||||
});
|
|
||||||
}, 2000);
|
|
||||||
})
|
|
||||||
.catch((error) => {
|
|
||||||
this.toast.showError(error);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public isEnabled(idp: Provider.AsObject): boolean {
|
public isEnabled(idp: Provider.AsObject): boolean {
|
||||||
|
@ -1777,6 +1777,8 @@
|
|||||||
"DELETE": "Изтрий",
|
"DELETE": "Изтрий",
|
||||||
"DELETE_TITLE": "Изтриване на IDP",
|
"DELETE_TITLE": "Изтриване на IDP",
|
||||||
"DELETE_DESCRIPTION": "На път сте да изтриете доставчик на самоличност. ",
|
"DELETE_DESCRIPTION": "На път сте да изтриете доставчик на самоличност. ",
|
||||||
|
"REMOVE_WARN_TITLE": "Премахване на IDP",
|
||||||
|
"REMOVE_WARN_DESCRIPTION": "На път сте да премахнете доставчик на самоличност. Това ще премахне избора на наличен IDP за вашите потребители и вече регистрираните потребители няма да могат да влязат отново. Сигурни ли сте, че ще продължите?",
|
||||||
"DELETE_SELECTION_TITLE": "Изтриване на IDP",
|
"DELETE_SELECTION_TITLE": "Изтриване на IDP",
|
||||||
"DELETE_SELECTION_DESCRIPTION": "На път сте да изтриете доставчик на самоличност. ",
|
"DELETE_SELECTION_DESCRIPTION": "На път сте да изтриете доставчик на самоличност. ",
|
||||||
"EMPTY": "Няма наличен IDP",
|
"EMPTY": "Няма наличен IDP",
|
||||||
|
@ -1784,6 +1784,8 @@
|
|||||||
"DELETE": "Löschen",
|
"DELETE": "Löschen",
|
||||||
"DELETE_TITLE": "IDP löschen",
|
"DELETE_TITLE": "IDP löschen",
|
||||||
"DELETE_DESCRIPTION": "Sie sind im Begriff einen Identitätsanbieter zu löschen. Die dadurch hervorgerufenen Änderungen sind unwiderruflich. Wollen Sie dies wirklich tun?",
|
"DELETE_DESCRIPTION": "Sie sind im Begriff einen Identitätsanbieter zu löschen. Die dadurch hervorgerufenen Änderungen sind unwiderruflich. Wollen Sie dies wirklich tun?",
|
||||||
|
"REMOVE_WARN_TITLE": "IDP entfernen?",
|
||||||
|
"REMOVE_WARN_DESCRIPTION": "Sie sind dabei, einen Identitätsanbieter zu entfernen. Dadurch wird die Auswahl des verfügbaren IDP für Ihre Benutzer entfernt und bereits registrierte Benutzer können sich nicht erneut anmelden. Wollen Sie wirklich fortfahren?",
|
||||||
"DELETE_SELECTION_TITLE": "Identitätsanbieter löschen",
|
"DELETE_SELECTION_TITLE": "Identitätsanbieter löschen",
|
||||||
"DELETE_SELECTION_DESCRIPTION": "Sie sind im Begriff mehrere Identitätsanbieter zu löschen. Die dadurch hervorgerufenen Änderungen sind unwiderruflich. Wollen Sie dies wirklich tun?",
|
"DELETE_SELECTION_DESCRIPTION": "Sie sind im Begriff mehrere Identitätsanbieter zu löschen. Die dadurch hervorgerufenen Änderungen sind unwiderruflich. Wollen Sie dies wirklich tun?",
|
||||||
"EMPTY": "Kein IDP vorhanden",
|
"EMPTY": "Kein IDP vorhanden",
|
||||||
|
@ -1784,6 +1784,8 @@
|
|||||||
"DELETE": "Delete",
|
"DELETE": "Delete",
|
||||||
"DELETE_TITLE": "Delete IDP",
|
"DELETE_TITLE": "Delete IDP",
|
||||||
"DELETE_DESCRIPTION": "You are about to delete an identity provider. The resulting changes are irrevocable. Do you really want to do this?",
|
"DELETE_DESCRIPTION": "You are about to delete an identity provider. The resulting changes are irrevocable. Do you really want to do this?",
|
||||||
|
"REMOVE_WARN_TITLE": "Remove IDP",
|
||||||
|
"REMOVE_WARN_DESCRIPTION": "You are about to remove an identity provider. This will remove the selection of the available IDP for your users and already registered users won't be able to login again. Are you sure to continue?",
|
||||||
"DELETE_SELECTION_TITLE": "Delete IDP",
|
"DELETE_SELECTION_TITLE": "Delete IDP",
|
||||||
"DELETE_SELECTION_DESCRIPTION": "You are about to delete an identity provider. The resulting changes are irrevocable. Do you really want to do this?",
|
"DELETE_SELECTION_DESCRIPTION": "You are about to delete an identity provider. The resulting changes are irrevocable. Do you really want to do this?",
|
||||||
"EMPTY": "No IDP available",
|
"EMPTY": "No IDP available",
|
||||||
|
@ -1784,6 +1784,8 @@
|
|||||||
"DELETE": "Borrar",
|
"DELETE": "Borrar",
|
||||||
"DELETE_TITLE": "Borrar IDP",
|
"DELETE_TITLE": "Borrar IDP",
|
||||||
"DELETE_DESCRIPTION": "Estás a punto de borrar un proveedor de identidad. Los cambios son irrevocables. ¿Estás seguro de que quieres hacer esto?",
|
"DELETE_DESCRIPTION": "Estás a punto de borrar un proveedor de identidad. Los cambios son irrevocables. ¿Estás seguro de que quieres hacer esto?",
|
||||||
|
"REMOVE_WARN_TITLE": "Quitar desplazado interno",
|
||||||
|
"REMOVE_WARN_DESCRIPTION": "Está a punto de eliminar un proveedor de identidad. Esto eliminará la selección del IDP disponible para sus usuarios y los usuarios ya registrados no podrán volver a iniciar sesión. ¿Estás seguro de continuar?",
|
||||||
"DELETE_SELECTION_TITLE": "Borrar IDP",
|
"DELETE_SELECTION_TITLE": "Borrar IDP",
|
||||||
"DELETE_SELECTION_DESCRIPTION": "Estás a punto de borrar un proveedor de identidad. Los cambios resultantes son irrevocables. ¿Estás seguro de que quieres hacer esto?",
|
"DELETE_SELECTION_DESCRIPTION": "Estás a punto de borrar un proveedor de identidad. Los cambios resultantes son irrevocables. ¿Estás seguro de que quieres hacer esto?",
|
||||||
"EMPTY": "No hay IDP disponible",
|
"EMPTY": "No hay IDP disponible",
|
||||||
|
@ -1788,6 +1788,8 @@
|
|||||||
"DELETE": "Supprimer",
|
"DELETE": "Supprimer",
|
||||||
"DELETE_TITLE": "Supprimer Idp",
|
"DELETE_TITLE": "Supprimer Idp",
|
||||||
"DELETE_DESCRIPTION": "Vous êtes sur le point de supprimer un fournisseur d'identité. Les changements qui en résultent sont irrévocables. Voulez-vous vraiment le faire ?",
|
"DELETE_DESCRIPTION": "Vous êtes sur le point de supprimer un fournisseur d'identité. Les changements qui en résultent sont irrévocables. Voulez-vous vraiment le faire ?",
|
||||||
|
"REMOVE_WARN_TITLE": "Supprimer le fournisseur d'identité",
|
||||||
|
"REMOVE_WARN_DESCRIPTION": "Vous êtes sur le point de supprimer un fournisseur d'identité. Cela supprimera la sélection de l'IDP disponible pour vos utilisateurs et les utilisateurs déjà enregistrés ne pourront plus se reconnecter. Êtes-vous sûr de continuer ?",
|
||||||
"DELETE_SELECTION_TITLE": "Supprimer Idp",
|
"DELETE_SELECTION_TITLE": "Supprimer Idp",
|
||||||
"DELETE_SELECTION_DESCRIPTION": "Vous êtes sur le point de supprimer un fournisseur d'identité. Les changements qui en résultent sont irrévocables. Voulez-vous vraiment le faire ?",
|
"DELETE_SELECTION_DESCRIPTION": "Vous êtes sur le point de supprimer un fournisseur d'identité. Les changements qui en résultent sont irrévocables. Voulez-vous vraiment le faire ?",
|
||||||
"EMPTY": "Aucun IDP disponible",
|
"EMPTY": "Aucun IDP disponible",
|
||||||
|
@ -1788,6 +1788,8 @@
|
|||||||
"DELETE": "Rimuovi IDP",
|
"DELETE": "Rimuovi IDP",
|
||||||
"DELETE_TITLE": "Rimuovi IDP",
|
"DELETE_TITLE": "Rimuovi IDP",
|
||||||
"DELETE_DESCRIPTION": "Stai per rimuovere un fornitore di identit\u00e0. I cambiamenti risultanti sono irrevocabili. Vuoi davvero farlo?",
|
"DELETE_DESCRIPTION": "Stai per rimuovere un fornitore di identit\u00e0. I cambiamenti risultanti sono irrevocabili. Vuoi davvero farlo?",
|
||||||
|
"REMOVE_WARN_TITLE": "Rimuovi IDP",
|
||||||
|
"REMOVE_WARN_DESCRIPTION": "Stai per rimuovere un provider di identità. Questo rimuoverà la selezione dell'IDP disponibile per i tuoi utenti e gli utenti già registrati non potranno accedere nuovamente. Sei sicuro di continuare?",
|
||||||
"DELETE_SELECTION_TITLE": "Rimuovere IDP",
|
"DELETE_SELECTION_TITLE": "Rimuovere IDP",
|
||||||
"DELETE_SELECTION_DESCRIPTION": "Stai per rimuovere un fornitore di identit\u00e0. I cambiamenti risultanti sono irrevocabili. Vuoi davvero farlo?",
|
"DELETE_SELECTION_DESCRIPTION": "Stai per rimuovere un fornitore di identit\u00e0. I cambiamenti risultanti sono irrevocabili. Vuoi davvero farlo?",
|
||||||
"EMPTY": "Nessun IDP disponible",
|
"EMPTY": "Nessun IDP disponible",
|
||||||
|
@ -1779,6 +1779,8 @@
|
|||||||
"DELETE": "削除",
|
"DELETE": "削除",
|
||||||
"DELETE_TITLE": "IDPの削除",
|
"DELETE_TITLE": "IDPの削除",
|
||||||
"DELETE_DESCRIPTION": "IDプロバイダーを削除しようとしています。変更は取消できません。本当によろしいですか?",
|
"DELETE_DESCRIPTION": "IDプロバイダーを削除しようとしています。変更は取消できません。本当によろしいですか?",
|
||||||
|
"REMOVE_WARN_TITLE": "IDPを削除する",
|
||||||
|
"REMOVE_WARN_DESCRIPTION": "ID プロバイダーを削除しようとしています。これにより、ユーザーが使用できる IDP の選択が削除され、すでに登録されているユーザーは再度ログインできなくなります。続けてもよろしいですか?",
|
||||||
"DELETE_SELECTION_TITLE": "IDPの削除",
|
"DELETE_SELECTION_TITLE": "IDPの削除",
|
||||||
"DELETE_SELECTION_DESCRIPTION": "IDプロバイダーを削除しようとしています。変更は取消できません。本当によろしいですか?",
|
"DELETE_SELECTION_DESCRIPTION": "IDプロバイダーを削除しようとしています。変更は取消できません。本当によろしいですか?",
|
||||||
"EMPTY": "IDPは利用できません",
|
"EMPTY": "IDPは利用できません",
|
||||||
|
@ -1788,6 +1788,8 @@
|
|||||||
"DELETE": "Usuń",
|
"DELETE": "Usuń",
|
||||||
"DELETE_TITLE": "Usuń dostawcę tożsamości",
|
"DELETE_TITLE": "Usuń dostawcę tożsamości",
|
||||||
"DELETE_DESCRIPTION": "Zamierzasz usunąć dostawcę tożsamości. Spowoduje to nieodwracalne zmiany. Czy na pewno chcesz to zrobić?",
|
"DELETE_DESCRIPTION": "Zamierzasz usunąć dostawcę tożsamości. Spowoduje to nieodwracalne zmiany. Czy na pewno chcesz to zrobić?",
|
||||||
|
"REMOVE_WARN_TITLE": "Usuń dostawcę tożsamości",
|
||||||
|
"REMOVE_WARN_DESCRIPTION": "Zamierzasz usunąć dostawcę tożsamości. Spowoduje to usunięcie wyboru dostępnego dostawcy tożsamości dla Twoich użytkowników, a już zarejestrowani użytkownicy nie będą mogli zalogować się ponownie. Czy na pewno chcesz kontynuować?",
|
||||||
"DELETE_SELECTION_TITLE": "Usuń dostawcę tożsamości",
|
"DELETE_SELECTION_TITLE": "Usuń dostawcę tożsamości",
|
||||||
"DELETE_SELECTION_DESCRIPTION": "Zamierzasz usunąć dostawcę tożsamości. Spowoduje to nieodwracalne zmiany. Czy na pewno chcesz to zrobić?",
|
"DELETE_SELECTION_DESCRIPTION": "Zamierzasz usunąć dostawcę tożsamości. Spowoduje to nieodwracalne zmiany. Czy na pewno chcesz to zrobić?",
|
||||||
"EMPTY": "Brak dostawcy tożsamości dostępnego",
|
"EMPTY": "Brak dostawcy tożsamości dostępnego",
|
||||||
|
@ -1787,6 +1787,8 @@
|
|||||||
"DELETE": "删除",
|
"DELETE": "删除",
|
||||||
"DELETE_TITLE": "删除 IDP",
|
"DELETE_TITLE": "删除 IDP",
|
||||||
"DELETE_DESCRIPTION": "您即将删除身份提供者。由此产生的变化是不可撤销的。你真的想这样做吗?",
|
"DELETE_DESCRIPTION": "您即将删除身份提供者。由此产生的变化是不可撤销的。你真的想这样做吗?",
|
||||||
|
"REMOVE_WARN_TITLE": "删除国内流离失所者",
|
||||||
|
"REMOVE_WARN_DESCRIPTION": "您即将删除身份提供者。这将为您的用户删除可用 IDP 的选择,并且已经注册的用户将无法再次登录。您确定要继续吗?",
|
||||||
"DELETE_SELECTION_TITLE": "删除 IDP",
|
"DELETE_SELECTION_TITLE": "删除 IDP",
|
||||||
"DELETE_SELECTION_DESCRIPTION": "您即将删除身份提供者。由此产生的变化是不可撤销的。你真的想这样做吗?",
|
"DELETE_SELECTION_DESCRIPTION": "您即将删除身份提供者。由此产生的变化是不可撤销的。你真的想这样做吗?",
|
||||||
"EMPTY": "没有可用的 IDP",
|
"EMPTY": "没有可用的 IDP",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user