fix(console): Idp settings, settings reset warn dialog, Accept-Language header interceptor, i18n (#3727)

* fix idp table, settings reset warn dialog, fix i18n interceptor, i18n

* fix label policy on org change

* fallback

* fix preview button styles

* footer, login-policy null check

* org create btn alignment

* show error with toast

* error toast
This commit is contained in:
Max Peintner
2022-05-31 09:08:47 +02:00
committed by GitHub
parent 3513148cf6
commit f9e9b4b64b
45 changed files with 472 additions and 413 deletions

View File

@@ -216,9 +216,9 @@ export class GrpcAuthService {
* returns true if user has one of the provided roles
* @param roles roles of the user
*/
public isAllowed(roles: string[] | RegExp[]): Observable<boolean> {
public isAllowed(roles: string[] | RegExp[], requiresAll: boolean = false): Observable<boolean> {
if (roles && roles.length > 0) {
return this.zitadelPermissions.pipe(switchMap((zroles) => of(this.hasRoles(zroles, roles))));
return this.zitadelPermissions.pipe(switchMap((zroles) => of(this.hasRoles(zroles, roles, requiresAll))));
} else {
return of(false);
}
@@ -228,17 +228,18 @@ export class GrpcAuthService {
* returns true if user has one of the provided roles
* @param userRoles roles of the user
* @param requestedRoles required roles for accessing the respective component
* @param requiresAll true - if all regexes must match, false - if only one regex must match
*/
public hasRoles(userRoles: string[], requestedRoles: string[] | RegExp[]): boolean {
return (
requestedRoles.findIndex((regexp: any) => {
return (
userRoles.findIndex((role) => {
return new RegExp(regexp).test(role);
}) > -1
);
}) > -1
);
public hasRoles(userRoles: string[], requestedRoles: string[] | RegExp[], requiresAll: boolean = false): boolean {
const test = (reqRegexp: string | RegExp) =>
userRoles.some((role) => {
return new RegExp(reqRegexp).test(role);
});
const allCheck = requestedRoles.map(test).every((x) => !!x);
const oneCheck = requestedRoles.some(test);
return requiresAll ? allCheck : oneCheck;
}
public getMyProfile(): Promise<GetMyProfileResponse.AsObject> {