Select Git revision
UseradminController.php
-
Tim Steiner authoredTim Steiner authored
UseradminController.php 4.53 KiB
<?php
class UserAdminController extends Nmc_Controller_Action
{
public function indexAction()
{
$out = new Nmc_View();
$groups = Groups::getInstance()->fetchAllWithoutPrimaries();
$out->title = 'Group Administration';
$out->page = 'user_admin';
$out->groups = $groups;
echo $out->render();
}
public function editUserAction()
{
$in = $this->_getAllParams();
$userId = Zend_Filter::getInt($in['URI_PARAMS'][0]);
if($in['Submit'] == 'Submit') {
return $this->editUserActionPost();
}
$out = new Nmc_View();
$out->title = 'Group Administration';
$out->page = 'user_admin';
if($userId < 0) {
$out->user = People::getInstance()->fetchNew();
} else {
$out->user = People::getInstance()->find($userId);
}
$out->groups = Groups::getInstance()->fetchAllWithoutPrimaries();
echo $out->render();
}
protected function editUserActionPost()
{
$in = $this->_getAllParams();
$userId = Zend_Filter::getInt($in['URI_PARAMS'][0]);
if(!$userId) {
$user = People::getInstance()->fetchNew();
} else {
$user = People::getInstance()->find($userId);
}
if($in['delete'] == '1') {
$user->delete();
} else {
$user->firstName = Zend_Filter::getAlnum($in['firstName']);
$user->lastName = Zend_Filter::getAlnum($in['lastName']);
$user->save();
}
$selectedGroups = Groups::getInstance()->findAll($in['groups']);
$currentGroups = $user->getGroups(false);
$removedGroups = $currentGroups->getRowsNotInCommonWith($selectedGroups);
$newGroups = $selectedGroups->getRowsNotInCommonWith($currentGroups);
foreach($removedGroups as $removedGroup) {
$removedGroup->removeUser($user);
}
foreach($newGroups as $newGroup)
{
$newGroup->addUser($user);
}
$out = new Nmc_View();
$out->refresh = '/UserAdmin/EditUser/' . $userId;
echo $out->render();
}
public function editGroupAction()
{
$in = $this->_getAllParams();
$groupId = Zend_Filter::getInt($in['URI_PARAMS'][0]);
if($in['Submit'] == 'Submit') {
return $this->editGroupActionPost();
}
$out = new Nmc_View();
$out->title = 'Group Administration';
$out->page = 'user_admin';
if($groupId < 0) {
$out->group = Groups::getInstance()->fetchNew();
} else {
$out->group = Groups::getInstance()->find($groupId);
}
$out->groups = Groups::getInstance()->fetchAllWithoutPrimaries();
$out->users = People::getInstance()->fetchAll();
$out->groups = Groups::getInstance()->fetchAllWithoutPrimaries();
echo $out->render();
}
protected function editGroupActionPost()
{
$in = $this->_getAllParams();
$groupId = Zend_Filter::getInt($in['URI_PARAMS'][0]);
if(!$groupId) {
$group = Groups::getInstance()->fetchNew();
$group->type = 1;
} else {
$group = Groups::getInstance()->find($groupId);
}
if($in['delete'] == '1') {
$group->delete();
} else {
$group->name = $in['name'];
$group->description = $in['description'];
$group->save();
}
$selectedGroups = Groups::getInstance()->findAll($in['groups']);
$currentGroups = $group->getGroups(false);
$removedGroups = $currentGroups->getRowsNotInCommonWith($selectedGroups);
$newGroups = $selectedGroups->getRowsNotInCommonWith($currentGroups);
foreach($removedGroups as $removedGroup) {
$group->removeGroup($removedGroup);
}
foreach($newGroups as $newGroup)
{
$group->addGroup($newGroup);
}
$selectedUsers = People::getInstance()->findAll($in['users']);
$currentUsers = $group->getUsers(false);
$removedUsers = $currentUsers->getRowsNotInCommonWith($selectedUsers);
$newUsers = $selectedUsers->getRowsNotInCommonWith($currentUsers);
foreach($removedUsers as $removedUser) {
$group->removeUser($removedUser);
}
foreach($newUsers as $newUser) {
$group->addUser($newUser);
}
$out = new Nmc_View();
$out->refresh = '/UserAdmin/EditGroup/' . $groupId;
echo $out->render();
}
}
?>