Select Git revision
UseradminController.php
UseradminController.php 6.30 KiB
<?php
class UserAdminController extends Nmc_Controller_Action
{
public function init()
{
$this->_registerPlugin(new Application_Controller_Action_Plugin_Authorize());
}
public function indexAction()
{
$out = new Application_View();
$groups = Groups::getInstance()->fetchAllWithoutPrimaries();
$out->title = 'Group Administration';
$out->page = 'user_admin';
$out->groups = $groups;
$out->clearSidebarModules();
echo $out->render('unlModernWrapper.xhtml');
}
public function editUserAction()
{
$in = $this->getRequest();
$userId = Zend_Filter_Int::filter($in->getParam(0));
if($in->getPost('Submit') == 'Submit') {
return $this->editUserActionPost();
}
$out = new Application_View();
$out->title = 'Group Administration';
$out->page = 'user_admin';
if($userId < 0) {
$out->user = People::getInstance()->fetchNew();
} else {
$out->user = People::getInstance()->findByUserId($userId);
}
$out->groups = Groups::getInstance()->fetchAllWithoutPrimaries();
$out->clearSidebarModules();
echo $out->render('unlModernWrapper.xhtml');
}
protected function editUserActionPost()
{
$in = $this->getRequest();
$userId = Zend_Filter_Int::filter($in->getParam(0));
if(!$userId) {
$user = People::getInstance()->fetchNew();
} else {
$user = People::getInstance()->findOne($userId);
}
if($in->getPost('delete') == '1') {
$user->delete();
} else {
$user->firstName = Zend_Filter_Alnum::filter($in->getPost('firstName'));
$user->lastName = Zend_Filter_Alnum::filter($in->getPost('lastName'));
$user->save();
}
$selectedGroups = Groups::getInstance()->findAll($in->getPost('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 Application_View();
$out->clearSidebarModules();
$out->refresh = '/UserAdmin/EditUser/' . $userId;
echo $out->render('unlModernWrapper.xhtml');
}
public function editGroupAction()
{
$in = $this->getRequest();
$groupId = Zend_Filter_Int::filter($in->getParam(0));
if($in->getPost('Submit') == 'Submit') {
return $this->editGroupActionPost();
}
$out = new Application_View();
$out->title = 'Group Administration';
$out->page = 'user_admin';
if($groupId < 0) {
$out->group = Groups::getInstance()->fetchNew();
} else {
$out->group = Groups::getInstance()->findOne($groupId);
}
$out->users = Users::getInstance()->fetchAll();
$out->groups = Groups::getInstance()->fetchAllWithoutPrimaries();
$out->clearSidebarModules();
echo $out->render('unlModernWrapper.xhtml');
}
protected function editGroupActionPost()
{
$in = $this->getRequest();
$groupId = Zend_Filter_Int::filter($in->getParam(0));
if(!$groupId) {
$group = Groups::getInstance()->fetchNew();
$group->type = 1;
} else {
$group = Groups::getInstance()->findOne($groupId);
}
if($in->getPost('delete') == '1') {
$group->delete();
} else {
$group->name = $in->getPost('name');
$group->description = $in->getPost('description');
$group->save();
}
$selectedGroups = Groups::getInstance()->findAll($in->getPost('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);
}
$selectedUsersArray = $in->getPost('users');
if (!is_array($selectedUsersArray)) {
$selectedUsersArray = array();
}
$selectedUsers = People::getInstance()->findByUserId($selectedUsersArray);
$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 Application_View();
$out->clearSidebarModules();
$out->refresh = '/UserAdmin/EditGroup/' . $groupId;
echo $out->render('unlModernWrapper.xhtml');
}
public function importUserAction()
{
$in = $this->getRequest();
$view = new Application_View();
$view->clearSidebarModules();
$view->page = 'user_admin';
$view->users = People::getInstance()->fetchAll();
$view->groups = Groups::getInstance()->fetchAllWithoutPrimaries();
$view->importUser = true;
$out = $this->getResponse();
$out->setBody($view->render('unlModernWrapper.xhtml'));
}
public function importUserPostAction()
{
$in = $this->getRequest();
$userName = $in->getPost('userName');
$person = People::getInstance()->findByUserName($userName);
if (!$person) {
$person = People::getInstance()->fetchNewFromLdap($userName);
if (!$person) {
throw new Nmc_Exception('Error importing user.');
}
$person->save();
}
$view = new Application_View();
$view->refresh = '/UserAdmin/EditUser/' . $person->getPrimaryKey();
$out = $this->getResponse();
$out->setBody($view->render('unlModernWrapper.xhtml'));
}
}