Skip to content

Commit 3c92cf4

Browse files
author
Natalia Kupriianova
committed
feat: [MULTIDIRECTORY-1184] Fixed an issue with deleting access groups in the access policy
1 parent 4c88e4c commit 3c92cf4

2 files changed

Lines changed: 19 additions & 57 deletions

File tree

projects/multidirectory-app/src/app/features/policies/access-policy/access-policy-view/access-policy-view.component.html

Lines changed: 8 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,11 @@
88
<div class="form-grid">
99
<!-- Domain Row -->
1010
<div>{{ 'access-policy-create.domain' | transloco }}</div>
11-
<md-textbox
12-
[(ngModel)]="accessClient.name"
13-
[maxLength]="100"
14-
appRequired
15-
class="span-two"
16-
></md-textbox>
11+
<md-textbox [(ngModel)]="accessClient.name" [maxLength]="100" appRequired class="span-two"></md-textbox>
1712

1813
<!-- IP Addresses Row -->
1914
<div>{{ 'access-policy-create.ip-addresses' | transloco }}</div>
20-
<md-textbox (blur)="onIpChanged()" [(ngModel)]="ipAddresses" appRequired validIpAddress>
21-
</md-textbox>
15+
<md-textbox (blur)="onIpChanged()" [(ngModel)]="ipAddresses" appRequired validIpAddress> </md-textbox>
2216
<md-button (click)="changeIpAdressAttribute()" [stretch]="true">
2317
{{ 'access-policy-create.add' | transloco }}
2418
</md-button>
@@ -28,6 +22,7 @@
2822
<md-multiselect
2923
#groupSelector
3024
(inputChanged)="checkGroups()"
25+
(itemSelected)="onChangeSelectedItems($event)"
3126
[(ngModel)]="groupQuery"
3227
[options]="availableGroups"
3328
[(selectedData)]="selectedGroups"
@@ -41,8 +36,7 @@
4136

4237
<!-- MFA Row -->
4338
<div>MFA</div>
44-
<md-dropdown [(ngModel)]="mfaAccess" [options]="options" appRequired class="span-two">
45-
</md-dropdown>
39+
<md-dropdown [(ngModel)]="mfaAccess" [options]="options" appRequired class="span-two"> </md-dropdown>
4640

4741
<!-- MFA Groups Row (Conditional) -->
4842
@if (mfaAccess === MfaAccessEnum.SelectedGroups) {
@@ -77,25 +71,15 @@
7771
<md-group title="Bypass" class="pt-16">
7872
@if (!bypassAllowed) {
7973
<div class="flex gap-1">
80-
<img
81-
class="tooltip-icon"
82-
src="assets/info-circle.svg"
83-
style="width: 24px; height: 24px"
84-
/>
74+
<img class="tooltip-icon" src="assets/info-circle.svg" style="width: 24px; height: 24px" />
8575
{{ 'access-policy-create.enable-2fa' | transloco }}<br />
8676
</div>
8777
}
8878
<div class="bypass-switch-column">
89-
<md-shift-checkbox
90-
[(ngModel)]="accessClient.bypassNoConnection"
91-
[disabled]="!bypassAllowed"
92-
>
79+
<md-shift-checkbox [(ngModel)]="accessClient.bypassNoConnection" [disabled]="!bypassAllowed">
9380
{{ 'access-policy-create.bypass-no-connection' | transloco }}
9481
</md-shift-checkbox>
95-
<md-shift-checkbox
96-
[(ngModel)]="accessClient.bypassServiceFailure"
97-
[disabled]="!bypassAllowed"
98-
>
82+
<md-shift-checkbox [(ngModel)]="accessClient.bypassServiceFailure" [disabled]="!bypassAllowed">
9983
{{ 'access-policy-create.bypass-service-failure' | transloco }}
10084
</md-shift-checkbox>
10185
</div>
@@ -105,9 +89,7 @@
10589
</md-form>
10690
@if (showConrolButton()) {
10791
<div class="flex justify-start gap-1">
108-
<md-button [disabled]="!form.valid" [primary]="true" (click)="save()"
109-
>{{ 'access-policy-create.approve' | transloco }}
110-
</md-button>
92+
<md-button [disabled]="!form.valid" [primary]="true" (click)="save()">{{ 'access-policy-create.approve' | transloco }} </md-button>
11193
</div>
11294
}
11395
</div>

projects/multidirectory-app/src/app/features/policies/access-policy/access-policy-view/access-policy-view.component.ts

Lines changed: 11 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,5 @@
11
import { NgClass } from '@angular/common';
2-
import {
3-
Component,
4-
inject,
5-
Input,
6-
input,
7-
OnDestroy,
8-
OnInit,
9-
output,
10-
viewChild,
11-
} from '@angular/core';
2+
import { Component, inject, Input, input, OnDestroy, OnInit, output, viewChild } from '@angular/core';
123
import { FormsModule } from '@angular/forms';
134
import { ActivatedRoute } from '@angular/router';
145
import { AccessPolicy } from '@core/access-policy/access-policy';
@@ -113,11 +104,7 @@ export class AccessPolicyViewComponent implements OnInit, OnDestroy {
113104
.getMultifactor()
114105
.pipe(take(1))
115106
.subscribe((mfSettings) => {
116-
this.bypassAllowed =
117-
!!mfSettings.mfa_key_ldap ||
118-
!!mfSettings.mfa_secret_ldap ||
119-
!!mfSettings.mfa_key ||
120-
!!mfSettings.mfa_secret;
107+
this.bypassAllowed = !!mfSettings.mfa_key_ldap || !!mfSettings.mfa_secret_ldap || !!mfSettings.mfa_key || !!mfSettings.mfa_secret;
121108
});
122109
}
123110

@@ -133,20 +120,13 @@ export class AccessPolicyViewComponent implements OnInit, OnDestroy {
133120
this.windows.hideSpinner();
134121
if (this.activatedRoute.snapshot.params.id) {
135122
this.accessClient =
136-
policies.find(
137-
(x) =>
138-
x.id == this.activatedRoute.snapshot.params.id || x.id == this.accessPolicyId(),
139-
) ?? new AccessPolicy();
123+
policies.find((x) => x.id == this.activatedRoute.snapshot.params.id || x.id == this.accessPolicyId()) ?? new AccessPolicy();
140124
}
141-
this.ipAddresses = this.accessClient.ipRange
142-
.map((x: any) => (x instanceof Object ? x.start + '-' + x.end : x))
143-
.join(', ');
125+
this.ipAddresses = this.accessClient.ipRange.map((x: any) => (x instanceof Object ? x.start + '-' + x.end : x)).join(', ');
144126

145127
this.mfaAccess = this.accessClient.mfaStatus ?? MfaAccessEnum.Noone;
146128
this.selectedGroups = this.accessClient.groups.map((x) => this.getMultiselectOption(x));
147-
this.selectedMfaGroups = this.accessClient.mfaGroups.map((x) =>
148-
this.getMultiselectOption(x),
149-
);
129+
this.selectedMfaGroups = this.accessClient.mfaGroups.map((x) => this.getMultiselectOption(x));
150130
},
151131
error: () => {
152132
this.windows.hideSpinner();
@@ -189,9 +169,7 @@ export class AccessPolicyViewComponent implements OnInit, OnDestroy {
189169
if (!result) {
190170
return;
191171
}
192-
this.ipAddresses = result.addresses
193-
.map((x: any) => (x instanceof Object ? x.start + '-' + x.end : x))
194-
.join(', ');
172+
this.ipAddresses = result.addresses.map((x: any) => (x instanceof Object ? x.start + '-' + x.end : x)).join(', ');
195173
this.accessClient.ipRange = result.addresses;
196174
});
197175
}
@@ -219,6 +197,10 @@ export class AccessPolicyViewComponent implements OnInit, OnDestroy {
219197
});
220198
}
221199

200+
onChangeSelectedItems($event: MultiselectModel[]) {
201+
this.accessClient.groups = $event.map((x) => x.id);
202+
}
203+
222204
checkMfaGroups() {
223205
this.retrieveGroups(this.mfaGroupsQuery)
224206
.pipe(take(1))
@@ -245,9 +227,7 @@ export class AccessPolicyViewComponent implements OnInit, OnDestroy {
245227
}
246228
return from(this.ldapTreeview.load('')).pipe(
247229
take(1),
248-
switchMap((root) =>
249-
this.api.search(SearchQueries.findEntities(groupQuery, root?.[0]?.id ?? '', ['group'])),
250-
),
230+
switchMap((root) => this.api.search(SearchQueries.findEntities(groupQuery, root?.[0]?.id ?? '', ['group']))),
251231
map((result) => {
252232
return result.search_result.map((x) => {
253233
const name = new RegExp(Constants.RegexGetNameFromDn).exec(x.object_name);

0 commit comments

Comments
 (0)