Skip to content
Snippets Groups Projects
Select Git revision
  • 8d206fdfb0881e2eb034bf071f5a06d55a038fea
  • 3.9 default
  • develop
  • 6.0
  • 5.0
  • 4.0
  • scrutinizer-patch-4
  • scrutinizer-patch-3
  • scrutinizer-patch-2
  • scrutinizer-patch-1
  • 3.7
  • 3.8
  • 3.6
  • 3.9_backported
  • 3.8_backported
  • 3.7_backported
  • 3.5
  • 3.6_backported
  • 3.5_backported
  • 3.4
  • 3.3_backported
  • 6.0.4
  • 6.0.3
  • 5.0.7
  • 6.0.2
  • 6.0.1
  • 5.0.6
  • 6.0.0
  • 5.0.5
  • 6.0.0-rc
  • 5.0.4
  • 6.0.0-beta
  • 5.0.3
  • 4.0.6
  • 5.0.2
  • 5.0.1
  • 4.0.5
  • 5.0.0
  • 4.0.4
  • 5.0.0-rc2
  • 5.0.0-rc1
41 results

UserTest.php

Blame
  • NewController.php 5.84 KiB
    <?php
    
    class Courses_NewController extends Creq_Controller_Action
    {
    	public function indexAction()
    	{
            $redirectUrl = Zend_Controller_Front::getInstance()->getBaseUrl()
                         . '/courses/new/search';
            $this->getResponse()->setRedirect($redirectUrl);
    	}
    
    	public function searchAction()
    	{
            //disable new requests
            $this->_helper->getHelper('FlashMessenger')->addMessage(
                "No new requests can be submitted at this time due to the implementation of CIM, the new curriculum request system. More information about CIM and training opportunities will be available in August. If you have any questions please contact Nicolette Brenton at 402-472-4030 or brenton@unl.edu."
        );
    	$this->view->messages = $this->_helper->getHelper('FlashMessenger')->getMessages();
    
            $filter = array(
                'subject'      => array('Alpha', 'StringToUpper'),
                'courseNumber' => array('Digits'),
                'courseLetter' => array('Alpha', 'StringToUpper')
            );
            $in = new Zend_Filter_Input($filter, array(), $this->getRequest()->getParams());
    
            if (!$in->subject || !$in->courseNumber) {
            	return;
            }
    
            $course = Courses_CourseModel::findByCourseCode($in->subject, $in->courseNumber, $in->courseLetter);
            $activeRequests = Courses_CourseModel::findActiveRequestByCourseCode($in->subject, $in->courseNumber, $in->courseLetter);
            if (count($activeRequests) > 0) {
            	$render = 'conflict';
            } else if ($course) {
            	$render = 'found';
    	        if ($in->subject != $course->getSubject()) {
    	            $this->view->crosslisting = true;
    	        } else {
    	            $this->view->crosslisting = false;
    	        }
                $this->view->course = $course;
            } else {
            	$render = 'create';
            }
    
            $user = Auth_UserModel::findCurrentUser();
            $groups = Auth_GroupModel::findByUser($user);
            $this->view->isAdmin = false;
            foreach ($groups as $group) {
                if ($group->getName() != 'root') {
                    continue;
                }
                $this->view->isAdmin = true;
            }
    
            $this->view->subject = $in->subject;
            $this->view->courseLetter = $in->courseLetter;
            $this->view->courseNumber = $in->courseNumber;
            $this->view->activeRequests = $activeRequests;
            if ($course instanceof Courses_CourseModel) {
                $this->view->isAce = $course->isAce();
                $this->view->isUndergrad = $course->isUndergraduateLevel();
                $this->view->isGrad = $course->isGraduateLevel();
            }
            $this->render($render);
    	}
    
    	public function searchPostAction()
    	{
            $filter = array(
                'subject'      => array('Alpha', 'StringToUpper'),
                'courseNumber' => array('Digits'),
                'courseLetter' => array('Alpha', 'StringToUpper')
            );
            $in = new Zend_Filter_Input($filter, array(), $this->getRequest()->getParams());
    
    	    $redirectUrl = Zend_Controller_Front::getInstance()->getBaseUrl()
                         . '/courses/new/search';
            if ($in->subject) {
                $redirectUrl .= '/subject/' . $in->subject;
            }
            if ($in->courseNumber) {
                $redirectUrl .= '/courseNumber/' . $in->courseNumber;
            }
            if ($in->courseLetter) {
                $redirectUrl .= '/courseLetter/' . $in->courseLetter;
            }
            $this->getResponse()->setRedirect($redirectUrl);
    	}
    
    	public function createAction()
    	{
    
    	$this->redirect('/courses/new');
    
            $filter = array(
                'type'         => array('StringTrim'),
                'subject'      => array('Alpha', 'StringToUpper'),
                'courseNumber' => array('Digits'),
                'courseLetter' => array('Alpha', 'StringToUpper')
            );
            $in = new Zend_Filter_Input($filter, array(), $this->getRequest()->getParams());
    
            $user = Auth_UserModel::findCurrentUser();
            $userRoles = Auth_GroupModel::findByUser($user);
    
            if ($in->type == 'AdminEdit' && !in_array(1, $userRoles->getId())) {
                throw new Exception('Only administrators are allowed to create Admin Edits!');
            }
    
            $request = Requests_RequestModel::fetchNew();
            $request->setType($in->type);
            $request->setModule('courses');
            $user = Auth_UserModel::findCurrentUser();
            $request->setOwner($user);
            $parentCourse = Courses_CourseModel::findByCourseCode($in->subject, $in->courseNumber, $in->courseLetter);
            if ($parentCourse) {
            	$course = clone $parentCourse;
                if ($request->getType() == 'AdminEdit') {
                    if ($in->fork == 'yes') {
                        $course->setCourseId(NULL);
                    }
                    if ($in->remove == 'yes') {
                        $course->setRemoved();
                    }
                }
            } else {
            	$course = Courses_CourseModel::fetchNew();
            	$course->setCourseCode($in->subject, $in->courseNumber, $in->courseLetter);
            }
    
            if (in_array($request->getType(), array('RemoveCourse'))) {
            	$course->setRemoved();
            }
            if (in_array($request->getType(), array('RemoveACEFromCourse', 'RemoveACEAndChangeCourse'))) {
                $course->removeAce();
            }
            if (in_array($request->getType(), array('ChangeCourse', 'AddACEAndChangeCourse', 'RemoveACEAndChangeCourse', 'SeparateGrad', 'RecertifyACEAndChangeCourse', 'ChangeACEAndChangeCourse'))) {
                $course->setDfRemoval(TRUE);
            }
    
            $course->setEffectiveSemester(Creq_Terms::getNextTermCode());
    
            $id = bin2hex(openssl_random_pseudo_bytes('16'));
            $session = new Zend_Session_Namespace('Edit Request ' . $id);
            $session->parentCourse = $parentCourse;
            $session->course = $course;
            $session->request = $request;
            unset($session->currentSavedRequestId);
    
            $this->_redirect('/courses/edit/index/id/' . $id);
    	}
    }