diff --git a/resources/i18n/en.json5 b/resources/i18n/en.json5 index d83cbbd7f9..e3fb25ac55 100644 --- a/resources/i18n/en.json5 +++ b/resources/i18n/en.json5 @@ -178,7 +178,7 @@ "admin.access-control.epeople.search.scope.name": "Name", - "admin.access-control.epeople.search.scope.email": "E-mail", + "admin.access-control.epeople.search.scope.email": "E-mail (exact)", "admin.access-control.epeople.search.scope.metadata": "Metadata", diff --git a/src/app/+admin/admin-access-control/admin-access-control-routing.module.ts b/src/app/+admin/admin-access-control/admin-access-control-routing.module.ts index 8f1927ad63..83f67a770e 100644 --- a/src/app/+admin/admin-access-control/admin-access-control-routing.module.ts +++ b/src/app/+admin/admin-access-control/admin-access-control-routing.module.ts @@ -9,6 +9,9 @@ import { EPeopleRegistryComponent } from './epeople-registry/epeople-registry.co ]) ] }) +/** + * Routing module for the AccessControl section of the admin sidebar + */ export class AdminAccessControlRoutingModule { } diff --git a/src/app/+admin/admin-access-control/admin-access-control.module.ts b/src/app/+admin/admin-access-control/admin-access-control.module.ts index 5893332971..0c8573e135 100644 --- a/src/app/+admin/admin-access-control/admin-access-control.module.ts +++ b/src/app/+admin/admin-access-control/admin-access-control.module.ts @@ -21,6 +21,9 @@ import { EPersonFormComponent } from './epeople-registry/eperson-form/eperson-fo ], entryComponents: [] }) +/** + * This module handles all components related to the access control pages + */ export class AdminAccessControlModule { } diff --git a/src/app/+admin/admin-access-control/epeople-registry/eperson-form/eperson-form.component.ts b/src/app/+admin/admin-access-control/epeople-registry/eperson-form/eperson-form.component.ts index ca89d9c125..dc271a7ee0 100644 --- a/src/app/+admin/admin-access-control/epeople-registry/eperson-form/eperson-form.component.ts +++ b/src/app/+admin/admin-access-control/epeople-registry/eperson-form/eperson-form.component.ts @@ -106,10 +106,18 @@ export class EPersonFormComponent implements OnInit, OnDestroy { */ subs: Subscription[] = []; + /** + * Try to retrieve initial active eperson, to fill in checkboxes at component creation + */ + epersonInitial: EPerson; + constructor(public epersonService: EPersonDataService, private formBuilderService: FormBuilderService, private translateService: TranslateService, private notificationsService: NotificationsService,) { + this.subs.push(this.epersonService.getActiveEPerson().subscribe((eperson: EPerson) => { + this.epersonInitial = eperson; + })); } ngOnInit() { @@ -155,12 +163,14 @@ export class EPersonFormComponent implements OnInit, OnDestroy { id: 'canLogIn', label: canLogIn, name: 'canLogIn', + value: (this.epersonInitial != null ? this.epersonInitial.canLogIn : true) }); this.requireCertificate = new DynamicCheckboxModel( { id: 'requireCertificate', label: requireCertificate, name: 'requireCertificate', + value: (this.epersonInitial != null ? this.epersonInitial.requireCertificate : false) }); this.formModel = [ this.firstName, @@ -175,10 +185,9 @@ export class EPersonFormComponent implements OnInit, OnDestroy { firstName: eperson != null ? eperson.firstMetadataValue('eperson.firstname') : '', lastName: eperson != null ? eperson.firstMetadataValue('eperson.lastname') : '', email: eperson != null ? eperson.email : '', - canLogIn: eperson != null ? eperson.canLogIn : true, - requireCertificate: eperson != null ? eperson.requireCertificate : false, - selfRegistered: false, }); + this.formGroup.get('canLogIn').patchValue((eperson != null ? eperson.canLogIn : true)); + this.formGroup.get('requireCertificate').patchValue((eperson != null ? eperson.requireCertificate : false)); })); }); } @@ -216,14 +225,12 @@ export class EPersonFormComponent implements OnInit, OnDestroy { email: this.email.value, canLogIn: this.canLogIn.value, requireCertificate: this.requireCertificate.value, - selfRegistered: false, }; if (ePerson == null) { this.createNewEPerson(values); } else { this.editEPerson(ePerson, values); } - this.clearFields(); } ); } @@ -270,7 +277,6 @@ export class EPersonFormComponent implements OnInit, OnDestroy { email: (hasValue(values.email) ? values.email : ePerson.email), canLogIn: (hasValue(values.canLogIn) ? values.canLogIn : ePerson.canLogIn), requireCertificate: (hasValue(values.requireCertificate) ? values.requireCertificate : ePerson.requireCertificate), - selfRegistered: false, _links: ePerson._links, }); @@ -320,7 +326,8 @@ export class EPersonFormComponent implements OnInit, OnDestroy { firstName: '', lastName: '', email: '', - canLogin: '', + canLogin: true, + requireCertificate: false }); }