mirror of
https://github.com/zitadel/zitadel.git
synced 2025-12-07 07:16:54 +00:00
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:
@@ -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> {
|
||||
|
||||
Reference in New Issue
Block a user