/** * 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()); }
/** * 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')); } }
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')); } } }
/** * 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()); }
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); }
/** * 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')); }
/** * 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; }