]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
implement superuser select-permissions disable
authorMichael Shamoon <4887959+shamoon@users.noreply.github.com>
Tue, 15 Nov 2022 09:06:12 +0000 (01:06 -0800)
committerMichael Shamoon <4887959+shamoon@users.noreply.github.com>
Tue, 15 Nov 2022 09:06:12 +0000 (01:06 -0800)
src-ui/src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html
src-ui/src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.ts
src-ui/src/app/components/common/permissions-select/permissions-select.component.html

index 70be861d116b6b215e3fe410c379feb62e9b542d..b2fef40480a04e50dcf9cd6944eb1de7593096f0 100644 (file)
@@ -17,8 +17,8 @@
               <label class="form-check-label" for="is_active" i18n>Active</label>
             </div>
             <div class="form-check form-switch form-check-inline">
-              <input type="checkbox" class="form-check-input" id="is_superuser" formControlName="is_superuser">
-              <label class="form-check-label" for="is_superuser" i18n>Superuser</label>
+              <input type="checkbox" class="form-check-input" id="is_superuser" formControlName="is_superuser" (change)="onToggleSuperUser()">
+              <label class="form-check-label" for="is_superuser"><ng-container i18n>Superuser</ng-container> <small class="form-text text-muted ms-1" i18n>(Grants all permissions)</small></label>
             </div>
           </div>
 
index c560023052fb2db84db9b53a06314fe56b13ff2d..e376a50d21c70ed2ce846b7b925a66e51476d585 100644 (file)
@@ -48,4 +48,12 @@ export class UserEditDialogComponent extends EditDialogComponent<PaperlessUser>
       user_permissions: new FormControl(null),
     })
   }
+
+  onToggleSuperUser() {
+    if (this.objectForm.get('is_superuser').value) {
+      this.objectForm.get('user_permissions').disable()
+    } else {
+      this.objectForm.get('user_permissions').enable()
+    }
+  }
 }
index 0261f574c0c63c74c0d3347d8d66ac601b812c60..8da26458a38b1d2a26f923d14066cb3d808f8ade 100644 (file)
@@ -1,4 +1,4 @@
-<form [formGroup]="form">
+<form [formGroup]="form" [class.opacity-50]="disabled">
   <label class="form-label">{{title}}</label>
   <ul class="list-group">
     <li class="list-group-item d-flex">
       <div class="col-3">{{type.key}}:</div>
 
       <div class="col form-check form-check-inline form-switch">
-        <input type="checkbox" class="form-check-input" id="{{type.key}}_all" (change)="toggleAll($event, type.key)" [checked]="typesWithAllActions.has(type.key)">
+        <input type="checkbox" class="form-check-input" id="{{type.key}}_all" (change)="toggleAll($event, type.key)" [checked]="typesWithAllActions.has(type.key)" [attr.disabled]="disabled ? true : null">
         <label class="form-check-label visually-hidden" for="{{type.key}}_all" i18n>All</label>
       </div>
 
       <div *ngFor="let action of PermissionAction | keyvalue" class="col form-check form-check-inline">
-        <input type="checkbox" class="form-check-input" id="{{type.key}}_{{action.key}}" formControlName="{{action.key}}" [attr.disabled]="typesWithAllActions.has(type.key) ? true : null">
+        <input type="checkbox" class="form-check-input" id="{{type.key}}_{{action.key}}" formControlName="{{action.key}}" [attr.disabled]="typesWithAllActions.has(type.key) || disabled ? true : null">
         <label class="form-check-label visually-hidden" for="{{type.key}}_{{action.key}}" i18n>{{action.key}}</label>
       </div>
     </li>