diff --git a/fid/config/vufind/fid.ini b/fid/config/vufind/fid.ini
index f9615bf43bb767c9f23c6697454d531717b00993..1739235747aa01027b1faf8e1a942c3f072b1a4a 100644
--- a/fid/config/vufind/fid.ini
+++ b/fid/config/vufind/fid.ini
@@ -14,12 +14,6 @@ role_display_priority[] = "full_access>limited_access>basic_access"
 role_display_order = "full_access>limited_access>basic_access"
 
 [Admin]
-; Whitelist of all fields that admins shall be able
-; to change for other users
-;editable_user_fields[] = 'HomeLibrary'
-editable_user_fields[] = 'Permissions'
-editable_user_fields[] = 'Salutation'
-
 ;list of user fields to be shown in overview table
 overview_fields[] = 'UserName'
 overview_fields[] = 'Firstname'
diff --git a/module/fid/config/admin-edit-form.php b/module/fid/config/admin-edit-form.php
index 81322e19f9306857c29d156410b139a279e0a6c4..55db3fe0391185e81f4bbdbdc3e6a3c62a492824 100644
--- a/module/fid/config/admin-edit-form.php
+++ b/module/fid/config/admin-edit-form.php
@@ -1,6 +1,6 @@
 <?php
 /**
- * Copyright (C) 2019 Leipzig University Library
+ * Copyright (C) 2020 Leipzig University Library
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
@@ -20,22 +20,25 @@
  */
 
 use fid\Hydrator\UserHydrator;
-use fid\InputFilter\AdminEditFormInputFilter;
 use fid\InputFilter\RootAwareBaseInputFilter;
-use Zend\Filter\StringTrim;
 use Zend\Form\Element\Collection;
 use Zend\Form\Element\Hidden;
 use Zend\Form\Element\Radio;
 use Zend\Form\Element\Select;
 use Zend\Form\Element\Submit;
 use Zend\Form\Element\Text;
-use Zend\Validator\Regex;
-use Zend\Validator\StringLength;
+use Zend\Form\Fieldset;
+use Zend\Form\InputFilterProviderFieldset;
 
 return [
-    'name'     => 'admin-edit-form',
-    'hydrator' => UserHydrator::class,
-    'elements' => [
+    'name'             => 'user-update-form',
+    'hydrator'         => UserHydrator::class,
+    'validation_group' => [
+        'id',
+        'job_title',
+        'permissions'
+    ],
+    'elements'         => [
         'id'             => [
             'spec' => [
                 'name' => 'id',
@@ -44,9 +47,9 @@ return [
         ],
         'salutation'     => [
             'spec' => [
-                'name'    => 'salutation',
-                'type'    => Select::class,
-                'options' => [
+                'name'       => 'salutation',
+                'type'       => Select::class,
+                'options'    => [
                     'label'        => 'label_salutation',
                     'options'      => [
                         'mr'  => [
@@ -60,15 +63,21 @@ return [
                     ],
                     'empty_option' => '',
                 ],
+                'attributes' => [
+                    'disabled' => true,
+                ],
             ],
         ],
         'academic_title' => [
             'spec' => [
-                'name'    => 'academic_title',
-                'type'    => Text::class,
-                'options' => [
+                'name'       => 'academic_title',
+                'type'       => Text::class,
+                'options'    => [
                     'label' => 'label_academic_title',
                 ],
+                'attributes' => [
+                    'readonly' => true,
+                ],
             ],
         ],
         'firstname'      => [
@@ -79,7 +88,7 @@ return [
                     'label' => 'label_firstname',
                 ],
                 'attributes' => [
-                    'required' => true,
+                    'readonly' => true,
                 ],
             ],
         ],
@@ -91,7 +100,7 @@ return [
                     'label' => 'label_lastname',
                 ],
                 'attributes' => [
-                    'required' => true,
+                    'readonly' => true,
                 ],
             ],
         ],
@@ -100,21 +109,23 @@ return [
                 'name'       => 'home_library',
                 'type'       => Select::class,
                 'options'    => [
-                    'label'              => 'label_home_library',
-                    'use_hidden_element' => true,
+                    'label' => 'label_home_library',
                 ],
                 'attributes' => [
-                    'required' => true,
+                    'disabled' => true,
                 ],
             ],
         ],
         'college'        => [
             'spec' => [
-                'name'    => 'college',
-                'type'    => Text::class,
-                'options' => [
+                'name'       => 'college',
+                'type'       => Text::class,
+                'options'    => [
                     'label' => 'label_college',
-                ]
+                ],
+                'attributes' => [
+                    'readonly' => true,
+                ],
             ],
         ],
         'job_title'      => [
@@ -153,110 +164,116 @@ return [
                 ],
             ],
         ],
-        'submit'         => [
-    'spec' => [
-        'name'       => 'submit',
-        'type'       => Submit::class,
-        'attributes' => [
-            'value' => 'label_update_submit',
-        ],
-    ],
-],
-    ],
-    'input_filter' => [
-    'type'           => RootAwareBaseInputFilter::class,
-    'id'             => [
-        'name'     => 'id',
-        'required' => true,
-    ],
-    'salutation'     => [
-        'name'     => 'salutation',
-        'required' => false,
-        'filters'  => [
-            StringTrim::class => [
-                'name' => StringTrim::class,
-            ],
-        ],
-    ],
-    'academic_title' => [
-        'name'     => 'academic_title',
-        'required' => false,
-        'filters'  => [
-            StringTrim::class => [
-                'name' => StringTrim::class,
-            ],
-        ],
-    ],
-    'firstname'      => [
-        'name'       => 'firstname',
-        'required'   => false,
-        'filters'    => [
-            StringTrim::class => [
-                'name' => StringTrim::class,
-            ],
-        ],
-        'validators' => [
-            StringLength::class => [
-                'name'    => StringLength::class,
-                'options' => [
-                    'max' => 255
-                ],
-            ],
-            Regex::class        => [
-                'name'    => Regex::class,
-                'options' => [
-                    'pattern' => '/^\D*$/',
+        'addresses'      => [
+            'spec' => [
+                'name'     => 'addresses',
+                'type'     => Fieldset::class,
+                'elements' => [
+                    'address_0' => [
+                        'spec' => [
+                            'name'     => 0,
+                            'type'     => Fieldset::class,
+                            'options'  => [
+                                'template' => 'fid/user/address-fieldset.phtml',
+                            ],
+                            'elements' => [
+                                'id'      => [
+                                    'spec' => [
+                                        'name' => 'id',
+                                        'type' => Hidden::class,
+                                    ],
+                                ],
+                                'line1'   => [
+                                    'spec' => [
+                                        'name'       => 'line1',
+                                        'options'    => [
+                                            'label' => 'label_address_0_line_1',
+                                        ],
+                                        'attributes' => [
+                                            'readonly' => true,
+                                        ],
+                                    ],
+                                ],
+                                'line2'   => [
+                                    'spec' => [
+                                        'name'       => 'line2',
+                                        'options'    => [
+                                            'label' => 'label_address_0_line_2',
+                                        ],
+                                        'attributes' => [
+                                            'readonly' => true,
+                                        ],
+                                    ],
+                                ],
+                                'zip'     => [
+                                    'spec' => [
+                                        'name'       => 'zip',
+                                        'options'    => [
+                                            'label' => 'label_address_0_zip',
+                                        ],
+                                        'attributes' => [
+                                            'readonly' => true,
+                                        ],
+                                    ],
+                                ],
+                                'city'    => [
+                                    'spec' => [
+                                        'name'       => 'city',
+                                        'options'    => [
+                                            'label' => 'label_address_0_city',
+                                        ],
+                                        'attributes' => [
+                                            'readonly' => true,
+                                        ],
+                                    ],
+                                ],
+                                'country' => [
+                                    'spec' => [
+                                        'name'       => 'country',
+                                        'options'    => [
+                                            'label' => 'label_address_0_country',
+                                        ],
+                                        'attributes' => [
+                                            'readonly' => true,
+                                        ],
+                                    ],
+                                ],
+                            ],
+                        ],
+                    ],
                 ],
             ],
         ],
-    ],
-    'lastname'       => [
-        'name'       => 'lastname',
-        'required'   => false,
-        'filters'    => [
-            StringTrim::class => [
-                'name' => StringTrim::class,
+        'data'           => [
+            'spec' => [
+                'name' => 'data',
+                'type' => InputFilterProviderFieldset::class,
             ],
         ],
-        'validators' => [
-            StringLength::class => [
-                'name'    => StringLength::class,
-                'options' => [
-                    'max' => 255
-                ]
-            ],
-            Regex::class        => [
-                'name'    => Regex::class,
-                'options' => [
-                    'pattern' => '/^\D*$/',
+        'submit'         => [
+            'spec' => [
+                'name'       => 'submit',
+                'type'       => Submit::class,
+                'attributes' => [
+                    'value' => 'label_update_submit',
                 ],
             ],
         ],
     ],
-    'home_library'   => [
-        'name'    => 'home_library',
-        'filters' => [
-            StringTrim::class => [
-                'name' => StringTrim::class,
-            ],
+    'input_filter'     => [
+        'type'      => RootAwareBaseInputFilter::class,
+        'id'        => [
+            'name'     => 'id',
+            'required' => true,
         ],
-    ],
-    'college'        => [
-        'name'     => 'college',
-        'required' => false,
-        'filters'  => [
-            StringTrim::class => [
-                'name' => StringTrim::class,
-            ],
+        'job_title' => [
+            'name'     => 'job_title',
+            'required' => true,
+        ],
+        'submit'    => [
+            'name'     => 'submit',
+            'required' => true,
         ],
     ],
-    'job_title'      => [
-        'name'     => 'job_title',
-        'required' => true,
-    ],
-    'submit'         => [
-        'name'     => 'submit',
-        'required' => true,
-    ],
-],
-];
\ No newline at end of file
+];
+
diff --git a/themes/fid/templates/fid/admin/edit.phtml b/themes/fid/templates/fid/admin/edit.phtml
index 81cc338eaf41898ad6c5798bd92d1ae877389f45..7f37ffbffd67776dc61dc55e64fd878ec29b3fa9 100644
--- a/themes/fid/templates/fid/admin/edit.phtml
+++ b/themes/fid/templates/fid/admin/edit.phtml
@@ -20,19 +20,23 @@
  * @license  http://opensource.org/licenses/gpl-2.0.php GNU GPLv2
  */
 
-use Zend\Form\Element as Element;
+use Zend\Form\Element;
+use Zend\Form\Element\Checkbox;
 use Zend\Form\Element\Submit;
+use Zend\Form\Form;
 use Zend\Form\View\Helper\FormElementErrors;
 use Zend\Form\View\Helper\FormLabel;
 use Zend\Form\View\Helper\FormRadio;
 use Zend\Form\View\Helper\FormSelect;
 use Zend\Form\View\Helper\FormSubmit;
 
+/** @var Form $form */
 /** @var FormLabel $formLabel */
 /** @var FormRadio $formRadio */
 /** @var FormSelect $formSelect */
 /** @var FormSubmit $formSubmit */
 /** @var FormElementErrors $formElementErrors */
+$form = $this->form;
 $formLabel = $this->formLabel();
 $formRadio = $this->formRadio();
 $formSelect = $this->formSelect();
@@ -47,14 +51,12 @@ $this->headTitle($title = $this->translate("fid::user_edit_form_title", [
     '%%userid%%'   => $user->getId(),
     '%%username%%' => $user->getUsername()
 ]));
-$editableFields = $this->config['Admin']['editable_user_fields'] ?? [];
-$form->setAttributes(['class' => 'row']);
-echo $this->form()->openTag($form);
 ?>
 
-<h2 class="row col-md-12"><?= $title ?></h2>
-<div class="row col-md-12"><?= $this->transEsc("fid::required_fields_note") ?></div>
+<h2><?= $title ?></h2>
+<div><?= $this->transEsc("fid::required_fields_note") ?></div>
 <?= $this->flashmessages() ?>
+<?= $this->form()->openTag($form) ?>
 <br/>
 
 <? /* id */ ?>
@@ -64,13 +66,10 @@ echo $this->form()->openTag($form);
 <?php
 /** @var Element\Select $elemSalutation */
 $elemSalutation = $form->get('salutation');
-$elemSalutation->setLabelAttributes(['class' => 'col-md-3']);
-$elemSalutation->setAttributes(['class' => 'col-md-3']);
-if (!in_array('Salutation', $editableFields)) {
-    $elemSalutation->setAttribute('readonly', '1');
-}
+$elemSalutation->setLabelAttributes(['class' => 'col-md-4']);
+$elemSalutation->setAttributes(['class' => 'form-control']);
 ?>
-<div class="row">
+<div class="form-group">
     <?= $this->formLabel($elemSalutation) ?>
     <?= $this->formSelect($elemSalutation) ?>
 </div>
@@ -79,29 +78,22 @@ if (!in_array('Salutation', $editableFields)) {
 <?php
 /** @var Element\Text $elemAcademicTitle */
 $elemAcademicTitle = $form->get('academic_title');
-$elemAcademicTitle->setLabelAttributes(['class' => 'col-md-3']);
-$elemAcademicTitle->setAttributes(['class' => 'col-md-3']);
-if (!in_array('AcademicTitle', $editableFields)) {
-    $elemAcademicTitle->setAttribute('readonly', '1');
-}
+$elemAcademicTitle->setLabelAttributes(['class' => 'col-md-4']);
+$elemAcademicTitle->setAttributes(['class' => 'form-control']);
 ?>
-<div class="row">
+<div class="form-group">
     <?= $this->formLabel($elemAcademicTitle) ?>
     <?= $this->formElement($elemAcademicTitle) ?>
-    <br/>
 </div>
 
 <? /* firstname */ ?>
 <?php
 /** @var Element\Text $elemFirstname */
 $elemFirstname = $form->get('firstname');
-$elemFirstname->setLabelAttributes(['class' => 'col-md-3']);
-$elemFirstname->setAttributes(['class' => 'col-md-3']);
-if (!in_array('Firstname', $editableFields)) {
-    $elemFirstname->setAttribute('readonly', '1');
-}
+$elemFirstname->setLabelAttributes(['class' => 'col-md-4']);
+$elemFirstname->setAttributes(['class' => 'form-control']);
 ?>
-<div class="row">
+<div class="form-group">
     <?= $this->formLabel($elemFirstname) ?>
     <?= $this->formElement($elemFirstname) ?>
     <?= $this->formElementErrors($elemFirstname) ?>
@@ -111,45 +103,23 @@ if (!in_array('Firstname', $editableFields)) {
 <?php
 /** @var Element\Text $elemLastname */
 $elemLastname = $form->get('lastname');
-$elemLastname->setLabelAttributes(['class' => 'col-md-3']);
-$elemLastname->setAttributes(['class' => 'col-md-3']);
-if (!in_array('Lastname', $editableFields)) {
-    $elemLastname->setAttribute('readonly', '1');
-}
+$elemLastname->setLabelAttributes(['class' => 'col-md-4']);
+$elemLastname->setAttributes(['class' => 'form-control']);
 ?>
-<div class="row">
+<div class="form-group">
     <?= $this->formLabel($elemLastname) ?>
     <?= $this->formElement($elemLastname) ?>
     <?= $this->formElementErrors($elemLastname) ?>
 </div>
 
-<? /* college */ ?>
-<?php
-/** @var Element\Text $elemCollege */
-$elemCollege = $form->get('college');
-$elemCollege->setLabelAttributes(['class' => 'col-md-3']);
-$elemCollege->setAttributes(['class' => 'col-md-3']);
-if (!in_array('College', $editableFields)) {
-    $elemCollege->setAttribute('readonly', '1');
-}
-?>
-<div class="row">
-    <?= $this->formLabel($elemCollege) ?>
-    <?= $this->formElement($elemCollege) ?>
-    <?= $this->formElementErrors($elemCollege) ?>
-</div>
-
 <? /* home library */ ?>
 <?php
 /** @var Element\Select $elemHomeLibrary */
 $elemHomeLibrary = $form->get('home_library');
-$elemHomeLibrary->setLabelAttributes(['class' => 'col-md-3']);
-$elemHomeLibrary->setAttributes(['class' => 'col-md-6']);
-if (!in_array('HomeLibrary', $editableFields)) {
-    $elemHomeLibrary->setAttribute('disabled', '1');
-}
+$elemHomeLibrary->setLabelAttributes(['class' => 'col-md-4']);
+$elemHomeLibrary->setAttributes(['class' => 'form-control']);
 ?>
-<div class="row">
+<div class="form-group">
     <?= $this->formLabel($elemHomeLibrary) ?>
     <?= $this->formSelect($elemHomeLibrary) ?>
     <?= $this->formElementErrors($elemHomeLibrary) ?>
@@ -159,15 +129,12 @@ if (!in_array('HomeLibrary', $editableFields)) {
 <?php
 /** @var Element\Radio $elemJobTitle */
 $elemJobTitle = $form->get('job_title');
-$elemJobTitle->setLabelAttributes(['class' => 'col-md-3']);
-$elemJobTitle->setAttributes(['class' => 'col-md-6']);
-if (!in_array('JobTitle', $editableFields)) {
-    $elemJobTitle->setAttribute('readonly', '1');
-}
+$elemJobTitle->setLabelAttributes(['class' => 'col-md-4']);
+$elemJobTitle->setAttributes(['class' => 'form-control']);
 ?>
-<div class="row">
+<div class="form-group">
     <?= $this->formLabel($elemJobTitle) ?>
-    <?= $this->formElement($elemJobTitle) ?>
+    <?= $this->formSelect($elemJobTitle) ?>
     <?= $this->formElementErrors($elemJobTitle) ?>
 </div>
 
@@ -176,34 +143,29 @@ if (!in_array('JobTitle', $editableFields)) {
 /** @var Element\Collection $elemPermissions */
 /** @var Element\Select[] $elemPermissionsElems */
 $elemPermissions = $form->get('permissions');
-$elemPermissions->setLabelAttributes(['class' => 'col-md-3']);
 $elemPermissionsElems = $elemPermissions->getElements();
 $permissions = $this->config['Admin']['permission_options'] ?? [];
 foreach ($permissions as $permission) {
     $element = $elemPermissionsElems[$permission];
     $element->setLabel("permission_$permission");
-    $element->setAttributes(['class' => 'col-md-2']);
-    $element->setLabelAttributes(['class' => 'col-md-6']);
+    $element->setAttributes(['class' => 'form-control']);
+    $element->setLabelAttributes(['class' => 'col-md-4']);
     $element->setAttribute('id', $element->getName());
     $elements[] = $element;
 }
 ?>
 
-<div class="row">
-    <?= $this->formLabel($elemPermissions) ?>
-    <div class="col-md-9">
-        <?php foreach ($elements as $element): ?>
-        <div class="row">
-            <?= $this->formElement($element) ?>
-            <?= $this->formLabel($element) ?>
-        </div>
-        <? endforeach; ?>
-        <div class="row">
-            <?= $this->formElementErrors($elemPermissions) ?>
-        </div>
-    </div>
+<h3><?= $this->formLabel($elemPermissions) ?></h3>
+<?php foreach ($elements ?? [] as $element): ?>
+<div class="form-group">
+    <?= $this->formLabel($element) ?>
+    <?= $this->formElement($element) ?>
 </div>
+<?php endforeach; ?>
+
 
+<? /* addresses */ ?>
+<?= $this->render('fid/user/address-collection.phtml') ?>
 
 <? /* submit button */ ?>
 <?php
@@ -211,10 +173,10 @@ foreach ($permissions as $permission) {
 $elemSubmit = $form->get('submit');
 $elemSubmit->setAttributes(['class' => 'btn btn-primary']);
 ?>
-<div class="row">
+<div class="form-group">
     <div class="col-lg-11 col-md-9 col-sm-11 col-xs-12">
         <?= $this->formSubmit($elemSubmit) ?>
-        <a href="<?= $this->url('fid/admin/list') ?>"
+        <a href="<?= $this->url('myresearch-profile') ?>"
            class="btn btn-primary">
             <?= $this->transEsc('Cancel') ?>
         </a>
@@ -222,4 +184,3 @@ $elemSubmit->setAttributes(['class' => 'btn btn-primary']);
 </div>
 
 <?= $this->form()->closeTag($form) ?>
-<!-- fid: admin - edit - END -->
\ No newline at end of file