Select Git revision
ViewController.php
-
Tim Steiner authoredTim Steiner authored
ViewController.php 6.14 KiB
<?php
class Courses_ViewController extends App_Controller_Action
{
public function indexAction()
{
$requestId = $this->getRequest()->getParam('id');
$myRequestSession = new Zend_Session_Namespace('My Requests');
if ($requestId == 'session') {
$session = new Zend_Session_Namespace('Edit Request');
$request = $session->request;
$course = $session->course;
$parentCourse = $session->parentCourse;
if ($request->getId()) {
$initialRequest = false;
} else {
$initialRequest = true;
}
$preview = true;
} else {
$request = Requests_RequestModel::find($requestId);
$course = Courses_CourseModel::findLatestOfRequest($request);
$parentCourse = null;
if (in_array($request->getType(), array('ChangeCourse', 'AddISToCourse', 'AddACEAndChangeCourse'))) {
$parentCourse = Courses_CourseModel::findParentOfRequest($request);
}
$initialRequest = false;
$preview = false;
// if we can know our role, we can create next and prev links.
$roleId = $myRequestSession->lastRoleId;
$list = $myRequestSession->lastList;
if ($roleId) {
$requestOrder = $myRequestSession->requestOrder[$roleId][$list];
$listPosition = array_search($request->getId(), $requestOrder);
if ($listPosition == 0) {
$prevRequestId = $requestOrder[count($requestOrder) - 1];
} else {
$prevRequestId = $requestOrder[$listPosition - 1];
}
if ($listPosition == count($requestOrder) - 1) {
$nextRequestId = $requestOrder[0];
} else {
$nextRequestId = $requestOrder[$listPosition + 1];
}
}
}
$comments = Requests_CommentsModel::findByRequest($request);
$user = Auth_UserModel::findCurrentUser();
$action = null;
$canEdit = false;
if ($request->getId()) {
$possibleAction = Requests_ApprovalActionModel::findByRequest($request);
if ($possibleAction instanceof Requests_ApprovalActionSubmitterApprovalModel && $request->getOwner() == $user->getId()) {
$action = $possibleAction;
}
$userRoles = Requests_ApprovalRoleModel::findByUser($user);
$allowedRoles = array_intersect(array(1) + $possibleAction->getParticipatingRoleIds(), $userRoles->getId());
if (count($allowedRoles) > 0) {
$action = $possibleAction;
}
$editAllowedRoles = array_intersect(array(1) + $possibleAction->getEditingRoleIds(), $userRoles->getId());
if (count($editAllowedRoles) > 0) {
$canEdit = true;
}