コード例 #1
0
 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();
     }
 }
コード例 #2
0
 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();
     }
 }
コード例 #3
0
 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();
     }
 }
コード例 #4
0
 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();
     }
 }
コード例 #5
0
 /**
  * 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();
     }
 }