Browse Source

fix(admin-ui): Allow creation of Administrator without update permission

Fixes #1875
Michael Bromley 3 years ago
parent
commit
8ea8e474c3

+ 5 - 5
packages/admin-ui/src/lib/settings/src/components/admin-detail/admin-detail.component.html

@@ -31,7 +31,7 @@
             id="emailAddress"
             type="text"
             formControlName="emailAddress"
-            [readonly]="!('UpdateAdministrator' | hasPermission)"
+            [readonly]="!(['CreateAdministrator', 'UpdateAdministrator'] | hasPermission)"
         />
     </vdr-form-field>
     <vdr-form-field [label]="'settings.first-name' | translate" for="firstName">
@@ -39,7 +39,7 @@
             id="firstName"
             type="text"
             formControlName="firstName"
-            [readonly]="!('UpdateAdministrator' | hasPermission)"
+            [readonly]="!(['CreateAdministrator', 'UpdateAdministrator'] | hasPermission)"
         />
     </vdr-form-field>
     <vdr-form-field [label]="'settings.last-name' | translate" for="lastName">
@@ -47,14 +47,14 @@
             id="lastName"
             type="text"
             formControlName="lastName"
-            [readonly]="!('UpdateAdministrator' | hasPermission)"
+            [readonly]="!(['CreateAdministrator', 'UpdateAdministrator'] | hasPermission)"
         />
     </vdr-form-field>
     <vdr-form-field *ngIf="isNew$ | async" [label]="'settings.password' | translate" for="password">
         <input id="password" type="password" formControlName="password" />
     </vdr-form-field>
     <vdr-form-field
-        *ngIf="!(isNew$ | async) && ('UpdateAdministrator' | hasPermission)"
+        *ngIf="!(isNew$ | async) && (['CreateAdministrator', 'UpdateAdministrator'] | hasPermission)"
         [label]="'settings.password' | translate"
         for="password"
         [readOnlyToggle]="true"
@@ -67,7 +67,7 @@
             entityName="Administrator"
             [customFields]="customFields"
             [customFieldsFormGroup]="detailForm.get('customFields')"
-            [readonly]="!('UpdateAdministrator' | hasPermission)"
+            [readonly]="!(['CreateAdministrator', 'UpdateAdministrator'] | hasPermission)"
         ></vdr-tabbed-custom-fields>
     </section>
     <vdr-custom-detail-component-host

+ 4 - 1
packages/admin-ui/src/lib/settings/src/components/admin-detail/admin-detail.component.ts

@@ -79,7 +79,10 @@ export class AdminDetailComponent
             .getRoles(999)
             .mapStream(item => item.roles.items.filter(i => i.code !== CUSTOMER_ROLE_CODE));
         this.dataService.client.userStatus().single$.subscribe(({ userStatus }) => {
-            if (!userStatus.permissions.includes(Permission.UpdateAdministrator)) {
+            if (
+                !userStatus.permissions.includes(Permission.CreateAdministrator) &&
+                !userStatus.permissions.includes(Permission.UpdateAdministrator)
+            ) {
                 const rolesSelect = this.detailForm.get('roles');
                 if (rolesSelect) {
                     rolesSelect.disable();