-
Tim Steiner authoredTim Steiner authored
UserAdminController.php 4.83 KiB
<?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());
}
}