Skip to content
Snippets Groups Projects
Select Git revision
  • 689757437714bd4651dafb83c49380015abbe937
  • hosted default
  • main
  • stand-alone
4 results

canvas_classes.py

Blame
  • 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'));
        }
    }