public function transformContent() { // initialize the form $form = $this->getForm('User'); $userControl = $form->getFormElementByName('User'); /* @var $userControl MultiSelectBoxTag */ $groupId = $this->getRequest()->getParameter('groupid'); $uM = $this->getManager(); $group = $uM->loadGroupByID($groupId); $users = $uM->loadUsersWithGroup($group); $count = count($users); // display hint, if no user is assigned to this group if ($count == 0) { $template = $this->getTemplate('NoMoreUser'); $template->getLabel('message-1')->setPlaceHolder('display-name', $group->getDisplayName()); $template->getLabel('message-2')->setPlaceHolder('group-view-link', $this->generateLink(['mainview' => 'group', 'groupview' => null, 'groupid' => null])); $template->transformOnPlace(); return; } // fill the multiselect field for ($i = 0; $i < $count; $i++) { $userControl->addOption($users[$i]->getLastName() . ', ' . $users[$i]->getFirstName(), $users[$i]->getObjectId()); } // remove the desired users if ($form->isSent() && $form->isValid()) { $options = $userControl->getSelectedOptions(); $users = []; for ($i = 0; $i < count($options); $i++) { $user = new UmgtUser(); $user->setObjectId($options[$i]->getAttribute('value')); $users[] = $user; unset($user); } $group = new UmgtGroup(); $group->setObjectId($groupId); $uM->detachUsersFromGroup($users, $group); $this->getResponse()->forward($this->generateLink(['mainview' => 'group', 'groupview' => null, 'groupid' => null])); } else { $form->transformOnPlace(); } }
public function transformContent() { $userId = $this->getRequest()->getParameter('userid'); $uM = $this->getManager(); $user = $uM->loadUserByID($userId); $this->getLabel('DisplayName')->setPlaceHolder('display-name', $user->getDisplayName()); $formNo = $this->getForm('UserDelNo'); $formYes = $this->getForm('UserDelYes'); $response = $this->getResponse(); if ($formYes->isSent()) { $user = new UmgtUser(); $user->setObjectId($userId); $uM->deleteUser($user); $response->forward($this->generateLink(['mainview' => 'user', 'userview' => null, 'userid' => null])); } elseif ($formNo->isSent()) { $response->forward($this->generateLink(['mainview' => 'user', 'userview' => null, 'userid' => null])); } else { $formNo->transformOnPlace(); $formYes->transformOnPlace(); } }
public function transformContent() { // get role id $roleId = $this->getRequest()->getParameter('roleid'); // initialize the form $form = $this->getForm('User'); $user = $form->getFormElementByName('User'); /* @var $user MultiSelectBoxTag */ $uM = $this->getManager(); $role = $uM->loadRoleByID($roleId); $users = $uM->loadUsersNotWithRole($role); $count = count($users); // display a hint, if a role already assigned to all users if ($count == 0) { $template = $this->getTemplate('NoMoreUser'); $template->getLabel('message-1')->setPlaceHolder('display-name', $role->getDisplayName()); $template->getLabel('message-2')->setPlaceHolder('role-view-link', $this->generateLink(['mainview' => 'role', 'roleview' => null, 'roleid' => null])); $template->transformOnPlace(); return; } // fill multi-select field for ($i = 0; $i < $count; $i++) { $user->addOption($users[$i]->getLastName() . ', ' . $users[$i]->getFirstName(), $users[$i]->getObjectId()); } // assign role to the desired users if ($form->isSent() && $form->isValid()) { $options = $user->getSelectedOptions(); $newUsers = []; for ($i = 0; $i < count($options); $i++) { $newUser = new UmgtUser(); $newUser->setObjectId($options[$i]->getAttribute('value')); $newUsers[] = $newUser; unset($newUser); } $uM->attachUsersToRole($newUsers, $role); $this->getResponse()->forward($this->generateLink(['mainview' => 'role', 'roleview' => '', 'roleid' => ''])); } else { $form->transformOnPlace(); } }
public function transformContent() { $uM = $this->getManager(); $form = $this->getForm('visibilitydef'); // pre-fill mode if "proxytypeid" and "appobjectid" are given $request = $this->getRequest(); $proxyTypeId = $request->getParameter('proxytypeid'); $appObjectId = $request->getParameter('appobjectid'); $proxyId = $request->getParameter('proxyid'); $selectedUsers = []; $selectedGroups = []; if ($proxyTypeId != null && $appObjectId != null) { $proxy = new UmgtVisibilityDefinition(); $proxy->setObjectId($proxyId); $selectedUsers = $uM->loadUsersWithVisibilityDefinition($proxy); $selectedGroups = $uM->loadGroupsWithVisibilityDefinition($proxy); } // load the defined visibility types $proxyTypes = $uM->loadVisibilityDefinitionTypes(); /* @var $typeElement SelectBoxTag */ $typeElement = $form->getFormElementByName('proxytypeid'); foreach ($proxyTypes as $proxyType) { $typeElement->addOption($proxyType->getAppObjectName(), $proxyType->getObjectId()); } // load users $userList = $uM->getPagedUserList(); /* @var $usersElement MultiSelectBoxTag */ $usersElement = $form->getFormElementByName('users'); foreach ($userList as $user) { $usersElement->addOption($user->getDisplayName(), $user->getObjectId()); } foreach ($selectedUsers as $selectedUser) { $usersElement->setOption2Selected($selectedUser->getObjectId()); } // load groups $groups = $uM->getPagedGroupList(); /* @var $groupsElement MultiSelectBoxTag */ $groupsElement = $form->getFormElementByName('groups'); foreach ($groups as $group) { $groupsElement->addOption($group->getDisplayName(), $group->getObjectId()); } foreach ($selectedGroups as $selectedGroup) { $groupsElement->setOption2Selected($selectedGroup->getObjectId()); } // store visibility definition if ($form->isSent() && $form->isValid()) { // setup type $type = new UmgtVisibilityDefinitionType(); $type->setObjectId($typeElement->getSelectedOption()->getAttribute('value')); // setup proxy $definition = new UmgtVisibilityDefinition(); $definition->setAppObjectId($form->getFormElementByName('appobjectid')->getAttribute('value')); // setup users $users = []; foreach ($usersElement->getSelectedOptions() as $option) { $user = new UmgtUser(); $user->setObjectId($option->getAttribute('value')); $users[] = $user; unset($user); } // setup groups $groups = []; foreach ($groupsElement->getSelectedOptions() as $option) { $group = new UmgtGroup(); $group->setObjectId($option->getAttribute('value')); $groups[] = $group; unset($group); } // setup access permissions $definition->setReadPermission($form->getFormElementByID('read-perm')->isChecked() ? 1 : 0); $definition->setWritePermission($form->getFormElementByID('write-perm')->isChecked() ? 1 : 0); $definition->setLinkPermission($form->getFormElementByID('link-perm')->isChecked() ? 1 : 0); $definition->setDeletePermission($form->getFormElementByID('delete-perm')->isChecked() ? 1 : 0); $uM->createVisibilityDefinition($type, $definition, $users, $groups); $this->getResponse()->forward($this->generateLink(['mainview' => 'proxy', 'proxyview' => null, 'proxytypeid' => null])); } else { $form->transformOnPlace(); } }
/** * Displays and handles the user edit form. * * @author Christian Achatz * @version * Version 0.1, 26.12.2008<br /> * Version 0.2, 02.01.2009 (Added the password fields handling)<br /> */ public function transformContent() { // get the userid from the request $userId = $this->getRequest()->getParameter('userid'); // setup the form $form = $this->getForm('UserForm'); $fieldUserId = $form->getFormElementByName('userid'); $fieldUserId->setAttribute('value', $userId); $firstName = $form->getFormElementByName('FirstName'); $lastName = $form->getFormElementByName('LastName'); /* @var $birthday DateSelectorTag */ $birthday = $form->getFormElementByName('Birthday'); $streetName = $form->getFormElementByName('StreetName'); $streetNumber = $form->getFormElementByName('StreetNumber'); $zipCode = $form->getFormElementByName('ZIPCode'); $city = $form->getFormElementByName('City'); $email = $form->getFormElementByName('EMail'); $mobile = $form->getFormElementByName('Mobile'); $username = $form->getFormElementByName('Username'); // get the manager $uM = $this->getManager(); if ($form->isSent()) { if ($form->isValid()) { // setup the domain object $user = new UmgtUser(); $user->setObjectId($userId); // read the "normal" fields $user->setFirstName($firstName->getValue()); $user->setLastName($lastName->getValue()); $user->setBirthday($birthday->getValue()); $user->setStreetName($streetName->getValue()); $user->setStreetNumber($streetNumber->getValue()); $user->setZIPCode($zipCode->getValue()); $user->setCity($city->getValue()); $user->setEMail($email->getValue()); $user->setMobile($mobile->getValue()); $user->setUsername($username->getValue()); // read the password field $passField1 = $form->getFormElementByName('Password'); $passField2 = $form->getFormElementByName('Password2'); $pass1 = $passField1->getAttribute('value'); $pass2 = $passField2->getAttribute('value'); $response = $this->getResponse(); if (!empty($pass1)) { if ($pass1 !== $pass2) { $passField1->markAsInvalid(); $passField2->markAsInvalid(); $passField1->appendCssClass($this->getMarkerClass($passField1)); $passField2->appendCssClass($this->getMarkerClass($passField2)); $this->setPlaceHolder('UserEdit', $form->transformForm()); } else { // add the password to the object $user->setPassword($pass2); // save the user $uM->saveUser($user); $response->forward($this->generateLink(['mainview' => 'user', 'userview' => '', 'userid' => ''])); } } else { $uM->saveUser($user); $response->forward($this->generateLink(['mainview' => 'user', 'userview' => '', 'userid' => ''])); } } else { $form->transformOnPlace(); } } else { $user = $uM->loadUserByID($userId); // pre-fill form $firstName->setValue($user->getFirstName()); $lastName->setValue($user->getLastName()); $birthday->setValue($user->getBirthday()); $streetName->setValue($user->getStreetName()); $streetNumber->setValue($user->getStreetNumber()); $zipCode->setValue($user->getZIPCode()); $city->setValue($user->getCity()); $email->setValue($user->getEMail()); $mobile->setValue($user->getMobile()); $username->setValue($user->getUsername()); $form->transformOnPlace(); } }