From e8b3a5fe1fc7eef701bb55217a0b9cf3bbdbba43 Mon Sep 17 00:00:00 2001 From: Ghislain Loas <ghislo@sandbox.pergame.net> Date: Fri, 22 Jan 2016 12:53:14 +0100 Subject: [PATCH] hotline #36925 fix --- VERSIONS_HOTLINE/36925 | 1 + library/ZendAfi/Form/Admin/User.php | 48 ++++++++++--------- .../admin/controllers/UsersControllerTest.php | 5 +- 3 files changed, 29 insertions(+), 25 deletions(-) create mode 100644 VERSIONS_HOTLINE/36925 diff --git a/VERSIONS_HOTLINE/36925 b/VERSIONS_HOTLINE/36925 new file mode 100644 index 00000000000..51d804711ce --- /dev/null +++ b/VERSIONS_HOTLINE/36925 @@ -0,0 +1 @@ + - ticket #36925 : Correction de la création d'un compte utilisateur diff --git a/library/ZendAfi/Form/Admin/User.php b/library/ZendAfi/Form/Admin/User.php index 08a4e957a25..a5976dea7a7 100644 --- a/library/ZendAfi/Form/Admin/User.php +++ b/library/ZendAfi/Form/Admin/User.php @@ -21,16 +21,30 @@ class ZendAfi_Form_Admin_User extends ZendAfi_Form { + protected $_user; + public static function newWith($datas = [], $custom_form = null) { - $form = parent::newWith($datas, $custom_form); + $form = (new static()); + + $user = ((isset($datas['id_user'])) && ($user = Class_Users::find($datas['id_user']))) + ? $user + : new Class_Users(); + + $form->setUser($user); + $form->addElements(); $form->addValidity($datas['date_debut'],$datas['date_fin']); - return $form; + return $form->populate($datas) + ->setCustomForm($custom_form); } - public function init() { - parent::init(); + public function setUser($user) { + $this->_user = $user; + return $this; + } + + public function addElements() { $this ->addBasicUserInfo() ->addAdminUserInfo() @@ -97,14 +111,12 @@ class ZendAfi_Form_Admin_User extends ZendAfi_Form { protected function addAdminUserInfo() { - $user = $this->getView()->user; - - $multi_options = $user->isSuperAdmin() + $multi_options = $this->_user->isSuperAdmin() ? ZendAfi_Acl_AdminControllerRoles::getRolesLabels() : ZendAfi_Acl_AdminControllerRoles::getRolesLabelsWithOutSuperAdmin(); $option=[]; - if ($user->isSuperAdmin() || $user->isAbonne() || (Class_Users::getIdentity()->getRoleLevel() <= ZendAfi_Acl_AdminControllerRoles::MODO_PORTAIL)) + if ($this->_user->isSuperAdmin() || $this->_user->isAbonne() || (Class_Users::getIdentity()->getRoleLevel() <= ZendAfi_Acl_AdminControllerRoles::MODO_PORTAIL)) $option=['disabled' => 'disabled']; $this @@ -112,17 +124,13 @@ class ZendAfi_Form_Admin_User extends ZendAfi_Form { 'role_level', array_merge(['label' => $this->_('Niveau d\'accès'), 'multiOptions' => $multi_options],$option)); - $bib_option=[]; - if ($user->getRoleLevel() <= ZendAfi_Acl_AdminControllerRoles::ADMIN_BIB) - $bib_option=['disabled' => 'disabled']; - $this ->addElement('select', 'id_site', array_merge( ['label' => $this->_('Bibliothèque'), - 'multiOptions' => array_merge(['0' => $this->_('Portail')], Class_Zone::findAllLabels())], - $bib_option)) + 'multiOptions' => array_merge(['0' => $this->_('Portail')], Class_Bib::findAllLabels())], + $option)) ->addElement('userGroup', 'user_group_ids', @@ -136,9 +144,7 @@ class ZendAfi_Form_Admin_User extends ZendAfi_Form { 'user_group_ids'], 'admin_user_info', ['legend' => $this->_('Droits')]); - return $this; - } @@ -204,8 +210,7 @@ class ZendAfi_Form_Admin_User extends ZendAfi_Form { protected function addSIGB() { - $user = $this->getView()->user; - $disabled = $user->getRoleLevel() <= ZendAfi_Acl_AdminControllerRoles::ABONNE_SIGB + $disabled = $this->_user->getRoleLevel() <= ZendAfi_Acl_AdminControllerRoles::ABONNE_SIGB ? ['disabled' => 'disabled'] : []; @@ -251,12 +256,10 @@ class ZendAfi_Form_Admin_User extends ZendAfi_Form { if (!Class_AdminVar::isRedmineEnabled()) return $this; - $user = $this->getView()->user; - - if($user->getRoleLevel() <= ZendAfi_Acl_AdminControllerRoles::ABONNE_SIGB) + if($this->_user->getRoleLevel() <= ZendAfi_Acl_AdminControllerRoles::ABONNE_SIGB) return $this; - $user_library = $user->getRedmineLibrary(); + $user_library = $this->_user->getRedmineLibrary(); $value = $user_library ? $user_library->getId() : 0; $options = $this->_getLibraries(); $this @@ -278,7 +281,6 @@ class ZendAfi_Form_Admin_User extends ZendAfi_Form { $this->getElement('redmine_status') ->addDecorator('Redmine', ['view' => $this->getView(), 'library' => $user_library]); - return $this; } diff --git a/tests/application/modules/admin/controllers/UsersControllerTest.php b/tests/application/modules/admin/controllers/UsersControllerTest.php index 0e8afd2dae1..e3996c22305 100644 --- a/tests/application/modules/admin/controllers/UsersControllerTest.php +++ b/tests/application/modules/admin/controllers/UsersControllerTest.php @@ -581,10 +581,11 @@ class UsersControllerPostValidDataWithCommOpsysTest extends UsersControllerWithM } + class UsersControllerAddViewTest extends AbstractControllerTestCase { public function setUp() { parent::setUp(); - $this->dispatch('/admin/users/add'); + $this->dispatch('/admin/users/add', true); } public function testActionAdd() { @@ -606,10 +607,10 @@ class UsersControllerAddViewTest extends AbstractControllerTestCase { public function testPseudoIsEmpty() { $this->assertXPath("//input[@name='pseudo'][@value='']"); } - } + class UsersControllerReferentIndexTest extends UsersControllerWithMarcusTestCase { use Trait_UserGroupFixtures; -- GitLab