Beispiel #1
0
 /**
  * Tests if the user group mapper returns the right user group model using an
  * data array.
  */
 public function testLoadFromArray()
 {
     $groupRow = array('id' => 1, 'name' => 'Administrator');
     $mapper = new GroupMapper();
     $group = $mapper->loadFromArray($groupRow);
     $this->assertTrue($group !== false);
     $this->assertEquals(1, $group->getId());
     $this->assertEquals('Administrator', $group->getName());
 }
Beispiel #2
0
 /**
  * Saves the group access rights.
  */
 public function saveAction()
 {
     $postData = $this->getRequest()->getPost();
     if (isset($postData['groupAccess'], $postData['groupId'])) {
         if ((int) $postData['groupId'] !== 1) {
             $groupAccessData = $postData['groupAccess'];
             $groupMapper = new GroupMapper();
             foreach ($groupAccessData as $type => $groupsAccessTypeData) {
                 foreach ($groupsAccessTypeData as $value => $accessLevel) {
                     $groupMapper->saveAccessData($_SESSION['user']['accessGroup'], $value, $accessLevel, $type);
                 }
             }
         }
         $this->redirect(array('action' => 'index'));
     }
 }
Beispiel #3
0
 public function treatAction()
 {
     $groupMapper = new GroupMapper();
     $userGroupMapper = new UserGroupMapper();
     if ($this->getRequest()->getParam('id')) {
         $this->getLayout()->getAdminHmenu()->add($this->getTranslator()->trans('manageGroups'), array('action' => 'index'))->add($this->getTranslator()->trans('treatGroup'), array('action' => 'treat'));
         $groups = $groupMapper->getGroupById($this->getRequest()->getParam('id'));
         $this->getView()->set('groups', $groups);
     } else {
         $this->getLayout()->getAdminHmenu()->add($this->getTranslator()->trans('manageGroups'), array('action' => 'index'))->add($this->getTranslator()->trans('manageNewGroup'), array('action' => 'treat'));
     }
     $userGroupList = $userGroupMapper->getGroupList();
     $this->getView()->set('userGroupList', $userGroupList);
     if ($this->getRequest()->isPost()) {
         $groupModel = new GroupModel();
         if ($this->getRequest()->getParam('id')) {
             $groupModel->setId($this->getRequest()->getParam('id'));
         }
         $groupName = trim($this->getRequest()->getPost('groupName'));
         $groupTag = trim($this->getRequest()->getPost('groupTag'));
         $groupImage = trim($this->getRequest()->getPost('groupImage'));
         $groupMember = $this->getRequest()->getPost('userGroup');
         if (empty($groupName)) {
             $this->addMessage('missingGroupName', 'danger');
         } elseif (empty($groupImage)) {
             $this->addMessage('missingGroupImage', 'danger');
         } elseif (empty($groupMember)) {
             $this->addMessage('missingGroupMember', 'danger');
         } elseif (empty($groupTag)) {
             $this->addMessage('missingGroupTag', 'danger');
         } else {
             $groupModel->setGroupMember($groupMember);
             $groupModel->setGroupName($groupName);
             $groupModel->setGroupTag($groupTag);
             $groupModel->setGroupImage($groupImage);
             $groupMapper->save($groupModel);
             $this->addMessage('saveSuccess');
             $this->redirect(array('action' => 'index'));
         }
     }
 }
Beispiel #4
0
 /**
  * Shows a form to create or edit a new user.
  */
 public function treatAction()
 {
     $this->getLayout()->getAdminHmenu()->add($this->getTranslator()->trans('menuUser'), array('action' => 'index'))->add($this->getTranslator()->trans('editUser'), array('action' => 'treat'));
     $userMapper = new UserMapper();
     if ($this->getRequest()->isPost()) {
         $userData = $this->getRequest()->getPost('user');
         if (!empty($userData['password'])) {
             $userData['password'] = (new PasswordService())->hash($userData['password']);
         }
         $user = $userMapper->loadFromArray($userData);
         if (!empty($userData['groups'])) {
             foreach ($userData['groups'] as $groupId) {
                 $group = new GroupModel();
                 $group->setId($groupId);
                 $user->addGroup($group);
             }
         }
         $date = new \Ilch\Date();
         $user->setDateCreated($date);
         $userId = $userMapper->save($user);
         if (!empty($userId) && empty($userData['id'])) {
             $this->addMessage('newUserMsg');
         }
     }
     if (empty($userId)) {
         $userId = $this->getRequest()->getParam('id');
     }
     if ($userMapper->userWithIdExists($userId)) {
         $user = $userMapper->getUserById($userId);
     } else {
         $user = new UserModel();
     }
     $groupMapper = new GroupMapper();
     $this->getView()->set('user', $user);
     $this->getView()->set('groupList', $groupMapper->getGroupList());
 }
Beispiel #5
0
 public function indexAction()
 {
     $this->getLayout()->getAdminHmenu()->add($this->getTranslator()->trans('forum'), array('action' => 'index'));
     $forumMapper = new ForumMapper();
     $userGroupMapper = new UserGroupMapper();
     /*
      * Saves the item tree to database.
      */
     if ($this->getRequest()->isPost()) {
         if ($this->getRequest()->getPost('save')) {
             $sortItems = json_decode($this->getRequest()->getPost('hiddenMenu'));
             $items = $this->getRequest()->getPost('items');
             $oldItems = $forumMapper->getForumItems(1);
             /*
              * Deletes old entries from database.
              */
             if (!empty($oldItems)) {
                 foreach ($oldItems as $oldItem) {
                     if (!isset($items[$oldItem->getId()])) {
                         $forumMapper->deleteItem($oldItem);
                     }
                 }
             }
             if ($items) {
                 $sortArray = array();
                 foreach ($sortItems as $sortItem) {
                     if ($sortItem->item_id !== null) {
                         $sortArray[$sortItem->item_id] = (int) $sortItem->parent_id;
                     }
                 }
                 foreach ($items as $item) {
                     $forumItem = new \Modules\Forum\Models\ForumItem();
                     if (strpos($item['id'], 'tmp_') !== false) {
                         $tmpId = str_replace('tmp_', '', $item['id']);
                     } else {
                         $forumItem->setId($item['id']);
                     }
                     $forumItem->setForumId(1);
                     $forumItem->setType($item['type']);
                     $forumItem->setTitle($item['title']);
                     $forumItem->setDesc($item['desc']);
                     $forumItem->setReadAccess($item['readAccess']);
                     $forumItem->setReplayAccess($item['replayAccess']);
                     $forumItem->setCreateAccess($item['createAccess']);
                     $newId = $forumMapper->saveItem($forumItem);
                     if (isset($tmpId)) {
                         foreach ($sortArray as $id => $parentId) {
                             if ($id == $tmpId) {
                                 unset($sortArray[$id]);
                                 $sortArray[$newId] = $parentId;
                             }
                             if ($parentId == $tmpId) {
                                 $sortArray[$id] = $newId;
                             }
                         }
                     }
                 }
                 $sort = 0;
                 foreach ($sortArray as $id => $parent) {
                     $forumItem = new \Modules\Forum\Models\ForumItem();
                     $forumItem->setId($id);
                     $forumItem->setSort($sort);
                     $forumItem->setParentId($parent);
                     $forumMapper->saveItem($forumItem);
                     $sort += 10;
                 }
             }
         }
         $this->addMessage('saveSuccess');
         $this->redirect(array('action' => 'index'));
     }
     $forumItems = $forumMapper->getForumItemsByParent(1, 0);
     $this->getView()->set('forumItems', $forumItems);
     $this->getView()->set('forumMapper', $forumMapper);
     $userGroupList = $userGroupMapper->getGroupList();
     $this->getView()->set('userGroupList', $userGroupList);
 }
Beispiel #6
0
 /**
  * Deletes the given group.
  */
 public function deleteAction()
 {
     $groupMapper = new GroupMapper();
     $groupId = $this->getRequest()->getParam('id');
     if ($groupId && $this->getRequest()->isSecure()) {
         /*
          * Admingroup has always id "1" and is not allowed to be deleted.
          */
         if ($groupId == 1) {
             $this->addMessage('delAdminGroup', 'warning');
         } else {
             if ($groupMapper->delete($groupId)) {
                 $this->addMessage('delGroupMsg');
             }
         }
     }
     $this->redirect(array('action' => 'index'));
 }
Beispiel #7
0
 /**
  * Returns an array with user models found by the where clause of false if
  * none found.
  *
  * @param  array $where
  * @return null|\Modules\User\Models\User[]
  */
 protected function getBy($where = [])
 {
     $userRows = $this->db()->select('*')->from('users')->where($where)->execute()->fetchRows();
     if (!empty($userRows)) {
         $users = array();
         foreach ($userRows as $userRow) {
             $groups = array();
             $sql = 'SELECT g.*
                     FROM `[prefix]_groups` AS g
                     INNER JOIN `[prefix]_users_groups` AS ug ON g.id = ug.group_id
                     WHERE ug.user_id = ' . $userRow['id'];
             $groupRows = $this->db()->queryArray($sql);
             $groupMapper = new Group();
             foreach ($groupRows as $groupRow) {
                 $groups[$groupRow['id']] = $groupMapper->loadFromArray($groupRow);
             }
             $user = $this->loadFromArray($userRow);
             $user->setGroups($groups);
             $users[] = $user;
         }
         return $users;
     }
     return null;
 }