]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
Fix: use default permissions for objects created via dropdown (#4778)
authorshamoon <4887959+shamoon@users.noreply.github.com>
Sun, 3 Dec 2023 00:52:48 +0000 (16:52 -0800)
committerGitHub <noreply@github.com>
Sun, 3 Dec 2023 00:52:48 +0000 (00:52 +0000)
src-ui/src/app/components/common/edit-dialog/edit-dialog.component.spec.ts
src-ui/src/app/components/common/edit-dialog/edit-dialog.component.ts
src-ui/src/app/components/common/input/tags/tags.component.spec.ts
src-ui/src/app/components/document-detail/document-detail.component.spec.ts

index e81c7c99c0f25c0a1593ee2b59f710d9e7453d8b..d0974236d90240fa7aadd87c5966cd3d99c87d3b 100644 (file)
@@ -131,6 +131,7 @@ describe('EditDialogComponent', () => {
   })
 
   it('should interpolate object permissions', () => {
+    component.getMatchingAlgorithms() // coverage
     component.object = tag
     component.dialogMode = EditDialogMode.EDIT
     component.ngOnInit()
index 30384ea313408cd882428d38f42a32c1417b122f..43253ba8a521b562b46008f26009e492d4fc9098 100644 (file)
@@ -58,8 +58,8 @@ export abstract class EditDialogComponent<
   objectForm: FormGroup = this.getForm()
 
   ngOnInit(): void {
-    if (this.object != null) {
-      if (this.object['permissions']) {
+    if (this.object != null && this.dialogMode !== EditDialogMode.CREATE) {
+      if ((this.object as ObjectWithPermissions).permissions) {
         this.object['set_permissions'] = this.object['permissions']
       }
 
@@ -69,6 +69,8 @@ export abstract class EditDialogComponent<
       }
       this.objectForm.patchValue(this.object)
     } else {
+      // e.g. if name was set
+      this.objectForm.patchValue(this.object)
       // defaults from settings
       this.objectForm.patchValue({
         permissions_form: {
index 85c492abae863a04862649bce2c0478b163fe8a6..7244560fde953b7d966ca19cea345e1bbb11d60b 100644 (file)
@@ -32,11 +32,9 @@ import { CheckComponent } from '../check/check.component'
 import { IfOwnerDirective } from 'src/app/directives/if-owner.directive'
 import { TextComponent } from '../text/text.component'
 import { ColorComponent } from '../color/color.component'
-import { IfPermissionsDirective } from 'src/app/directives/if-permissions.directive'
 import { PermissionsFormComponent } from '../permissions/permissions-form/permissions-form.component'
 import { SelectComponent } from '../select/select.component'
-import { ColorSliderModule } from 'ngx-color/slider'
-import { By } from '@angular/platform-browser'
+import { SettingsService } from 'src/app/services/settings.service'
 
 const tags: PaperlessTag[] = [
   {
@@ -63,8 +61,8 @@ const tags: PaperlessTag[] = [
 describe('TagsComponent', () => {
   let component: TagsComponent
   let fixture: ComponentFixture<TagsComponent>
-  let input: HTMLInputElement
   let modalService: NgbModal
+  let settingsService: SettingsService
 
   beforeEach(async () => {
     TestBed.configureTestingModule({
@@ -110,6 +108,7 @@ describe('TagsComponent', () => {
     }).compileComponents()
 
     modalService = TestBed.inject(NgbModal)
+    settingsService = TestBed.inject(SettingsService)
     fixture = TestBed.createComponent(TagsComponent)
     fixture.debugElement.injector.get(NG_VALUE_ACCESSOR)
     component = fixture.componentInstance
@@ -139,6 +138,7 @@ describe('TagsComponent', () => {
   })
 
   it('should support create new using last search term and open a modal', () => {
+    settingsService.currentUser = { id: 1 }
     let activeInstances: NgbModalRef[]
     modalService.activeInstances.subscribe((v) => (activeInstances = v))
     component.select.searchTerm = 'foobar'
index 9f49e737bec8c57edb6a73dff169093d16514252..4c3f6004d0abeb30561d3ca846d29483c341fe5f 100644 (file)
@@ -263,6 +263,7 @@ describe('DocumentDetailComponent', () => {
     toastService = TestBed.inject(ToastService)
     documentListViewService = TestBed.inject(DocumentListViewService)
     settingsService = TestBed.inject(SettingsService)
+    settingsService.currentUser = { id: 1 }
     customFieldsService = TestBed.inject(CustomFieldsService)
     fixture = TestBed.createComponent(DocumentDetailComponent)
     component = fixture.componentInstance