<?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(); } } ?>