<?php class Auth_UserAdminController extends App_Controller_Action { public function indexAction() { $users = Auth_UserModel::findAll(); $groups = Auth_GroupModel::findAll(false); $groupChildGroups = Auth_GroupModel::findByParentGroup($groups, false); $groupParentGroups = Auth_GroupModel::findByChildGroup($groups, false); $userGroups = Auth_GroupModel::findByUser($users, false); $groupUsers = Auth_UserModel::findByParentGroup($groups, false); $this->view->users = $users; $this->view->groups = $groups; $this->view->userGroups = $userGroups; $this->view->groupChildGroups = $groupChildGroups; $this->view->groupParentGroups = $groupParentGroups; $this->view->groupUsers = $groupUsers; } public function editUserAction() { $user = Auth_UserModel::find($this->_getParam('id')); $groups = Auth_GroupModel::findAll(false); $userGroups = Auth_GroupModel::findByUser($user, false); $groups->orderBy('getName'); $groupsArray = array(); foreach ($groups as $group) { $groupsArray[$group->getId()] = $group->getName(); } $userGroupsArray = array(); foreach ($userGroups as $group) { $userGroupsArray[] = $group->getId(); } $this->view->user = $user; $this->view->groups = $groupsArray; $this->view->userGroups = $userGroupsArray; } public function editUserPostAction() { $in = $this->_getAllParams(); print_r($in); $user = Auth_UserModel::find($in['id']); if (!$user) { $user = Auth_UserModel::fetchNew(); } $user->setFirstName($in['firstName']); $user->setMiddleName($in['middleName']); $user->setLastName($in['lastName']); $user->setEmail($in['email']); $user->setPhone($in['phone']); Auth_UserModel::save($user); $parentGroups = Auth_GroupModel::find($in['groups']); $userGroupMap = array($user->getId() => $parentGroups); Auth_GroupModel::setUserParentGroups($userGroupMap); $this->_disableLayoutAndView(); $this->_redirect('/auth/user-admin/edit-user/id/' . $user->getId()); } public function editGroupAction() { $group = Auth_GroupModel::find($this->_getParam('id')); $this->view->group = $group; $groups = Auth_GroupModel::findAll(false); $parentGroups = Auth_GroupModel::findByChildGroup($group, false); $childGroups = Auth_GroupModel::findByParentGroup($group, false); $userMembers = Auth_UserModel::findByParentGroup($group, false); $users = Auth_UserModel::findAll(); $groups->orderBy('getName'); $users->orderBy('getUsername'); $groupsArray = array(); foreach ($groups as $group) { $groupsArray[$group->getId()] = $group->getName(); } $usersArray = array(); foreach ($users as $user) { $usersArray[$user->getId()] = $user->getUsername(); } $parentGroupsArray = array(); foreach ($parentGroups as $group) { $parentGroupsArray[] = $group->getId(); } $childGroupsArray = array(); foreach ($childGroups as $group) { $childGroupsArray[] = $group->getId(); } $userMembersArray = array(); foreach ($userMembers as $user) { $userMembersArray[] = $user->getId(); } $this->view->users = $usersArray; $this->view->groups = $groupsArray; $this->view->parentGroups = $parentGroupsArray; $this->view->childGroups = $childGroupsArray; $this->view->userMembers = $userMembersArray; } public function editGroupPostAction() { $in = $this->_getAllParams(); $group = Auth_GroupModel::find($in['id']); if (!$group) { $group = Auth_GroupModel::fetchNew(); } $group->setName($in['name']); $group->setDescription($in['description']); Auth_GroupModel::save($group); $parentGroups = Auth_GroupModel::find((array) $in['parentGroups']); $childGroups = Auth_GroupModel::find((array) $in['childGroups']); $users = Auth_UserModel::find((array) $in['users']); $parentGroupMap = array(); $parentGroupMap[$group->getId()] = $parentGroups; Auth_GroupModel::setGroupParentGroups($parentGroupMap); $childGroupMap = array(); $childGroupMap[$group->getId()] = $childGroups; Auth_GroupModel::setGroupChildGroups($childGroupMap); $userMap = array(); $userMap[$group->getId()] = $users; Auth_GroupModel::setGroupUserMembers($userMap); $this->_redirect('/auth/user-admin/edit-group/id/' . $group->getId()); } }