/index.php

https://github.com/Aaron-P/Cranberry-Scheduler · PHP · 260 lines · 202 code · 46 blank · 12 comment · 33 complexity · 44fb2c4f4cc2f1a54294ccd8ecc1715c MD5 · raw file

  1. <?php
  2. /**
  3. * @copyright University of Illinois/NCSA Open Source License
  4. */
  5. error_reporting(E_ALL | E_STRICT);
  6. require_once("classes/UserSession.class.php");
  7. require_once("classes/smarty/Smarty.class.php");
  8. require_once("classes/GetHandler.class.php");
  9. require_once("classes/SessionHandler.class.php");
  10. require_once("classes/DataManager.class.php");
  11. require_once("classes/ScriptUrls.class.php");
  12. $smarty = new Smarty();
  13. $getHandler = new GetHandler();
  14. $dataManager = new DataManager();
  15. $userSession = new UserSession();
  16. $sessionHandler = new SessionHandler();
  17. //$smarty->force_compile = true;
  18. $smarty->debugging = false;
  19. $smarty->caching = false;
  20. $smarty->cache_lifetime = 120;
  21. if ($getHandler->exists("logout"))
  22. {
  23. $userSession->destroy();
  24. }
  25. $scriptUrls = new ScriptUrls();
  26. if (!$userSession->check() && $getHandler->get("page") !== "login")
  27. {
  28. $scriptUrls->redirectTo("index.php", array("page" => "login", "return" => $getHandler->get("page")));
  29. }
  30. $username = $userSession->getUsername();
  31. $smarty->assign("username", $username);
  32. $smarty->assign("firstName", $userSession->getFirstName());
  33. $smarty->assign("lastName", $userSession->getLastName());
  34. $smarty->assign("isVolunteer", $userSession->isVolunteer());
  35. $smarty->assign("isResearcher", $userSession->isResearcher());
  36. $smarty->assign("isTeacher", $userSession->isTeacher());
  37. $pageGet = $getHandler->get("page");
  38. if ($userSession->check())
  39. $smarty->assign("loggedIn", true);
  40. else
  41. $smarty->assign("loggedIn", false);
  42. $smarty->assign("token", $userSession->getPostToken());
  43. $smarty->assign("baseUrl", $scriptUrls->getBaseUrl());
  44. $smarty->assign("showConfirmDialog", false);
  45. if (false && $dataManager->areUnconfirmedVolunteers('esutten'))
  46. $smarty->assign("confirmVolunteers", true);
  47. else
  48. $smarty->assign("confirmVolunteers", false);
  49. $smarty->loadFilter("variable", "htmlspecialchars");
  50. switch ($pageGet)
  51. {
  52. case "main":
  53. if ($userSession->isVolunteer() && !$userSession->isResearcher() && !$userSession->isTeacher())
  54. $scriptUrls->redirectTo("index.php", array("page" => "volunteer_opportunities"));
  55. $smarty->assign("showConfirmDialog", true);
  56. $upcomingEvents = $dataManager->getUpcomingTeamEvents($username);
  57. $volEvents = $dataManager->getVolEvents($username);
  58. $upcomingEvents = array_merge($upcomingEvents, $volEvents);
  59. $smarty->assign("upcomingEvents", $upcomingEvents);
  60. break;
  61. case "view_meetings":
  62. $smarty->assign("showConfirmDialog", true);
  63. $upcomingEvents = $dataManager->getUpcomingTeamEventsDetailed($username);
  64. $volEvents = $dataManager->getVolEventsDetailed($username);
  65. $upcomingEvents = array_merge($upcomingEvents, $volEvents);
  66. $smarty->assign("upcomingEvents", $upcomingEvents);
  67. break;
  68. case "meeting_overview":
  69. $smarty->assign("showConfirmDialog", true);
  70. if (is_null($eventId = $getHandler->get("eventID")))
  71. $scriptUrls->redirectTo("index.php", array("page" => "main"));
  72. $event = $dataManager->getEventInfo($eventId);
  73. $volunteers = $dataManager->getMeetingVolunteers($eventId);
  74. $smarty->assign("eventId", $eventId);
  75. $smarty->assign("event", $event);
  76. $smarty->assign("volunteers", $volunteers);
  77. $smarty->assign("signUp", false);
  78. if ((bool)$event["InPast"])
  79. {
  80. $smarty->assign("editable", false);
  81. }
  82. else if (!$dataManager->ownsMeeting($eventId, $userSession->getUsername()))
  83. {
  84. $smarty->assign("editable", false);
  85. if (!$dataManager->isVolunteer($eventId, $userSession->getUsername()))
  86. $smarty->assign("signUp", true);
  87. }
  88. else
  89. $smarty->assign("editable", true);
  90. break;
  91. case "volunteer_opportunities":
  92. $upcomingEvents = $dataManager->getUpcomingTeamEvents($username);
  93. $volEvents = $dataManager->getVolEvents($username);
  94. $upcomingEvents = array_merge($upcomingEvents, $volEvents);
  95. $smarty->assign("upcomingEvents", $upcomingEvents);
  96. $opportunities = $dataManager->getVolunteerOpportunities();
  97. $smarty->assign("opportunities", $opportunities);
  98. break;
  99. case "schedule_meeting":
  100. if (!$userSession->isResearcher() && !$userSession->isTeacher())
  101. $scriptUrls->redirectTo("index.php", array("page" => "main"));
  102. $smarty->assign("showConfirmDialog", true);
  103. if (!is_null($eventId = $getHandler->get("eventID")))
  104. {
  105. if (!$dataManager->isInMeeting($eventId, $userSession->getUsername()))
  106. $scriptUrls->redirectTo("index.php", array("page" => "main"));
  107. // populate the form
  108. $meetingData = $dataManager->getMeetingData($eventId);
  109. $smarty->assign("inputFields", $meetingData);
  110. }
  111. else
  112. $smarty->assign("inputFields", false);
  113. $locations = $dataManager->getAllLocations();
  114. $smarty->assign("locations", $locations);
  115. break;
  116. case "settings":
  117. $smarty->assign("showConfirmDialog", true);
  118. $settings = $dataManager->getSettings($username);
  119. $smarty->assign("settings", $settings);
  120. break;
  121. case "login":
  122. if ($userSession->check())
  123. $scriptUrls->redirectTo("index.php", array("page" => "main"));
  124. if (is_null($return = $getHandler->get("return")))
  125. $return = "";
  126. $smarty->assign("return", $return);
  127. break;
  128. case "confirm_volunteer":
  129. if (!$userSession->isResearcher() && !$userSession->isTeacher())
  130. $scriptUrls->redirectTo("index.php", array("page" => "main"));
  131. $unconfirmedVolunteers = $dataManager->getUnconfirmedVolunteers('esutten');//$userSession->getUsername());
  132. $meetings = array();
  133. foreach ($unconfirmedVolunteers AS $unconfirmedVolunteer)
  134. {
  135. if (!isset($meetings[$unconfirmedVolunteer["MeetingID"]]))
  136. $meetings[$unconfirmedVolunteer["MeetingID"]] = array(
  137. "MeetingID" => $unconfirmedVolunteer["MeetingID"],
  138. "MeetingType" => $unconfirmedVolunteer["MeetingType"],
  139. "Description" => $unconfirmedVolunteer["Description"],
  140. "StartTime" => $unconfirmedVolunteer["StartTime"],
  141. "EndTime" => $unconfirmedVolunteer["EndTime"],
  142. "LocationID" => $unconfirmedVolunteer["LocationID"],
  143. "Volunteers" => array());
  144. array_push($meetings[$unconfirmedVolunteer["MeetingID"]]["Volunteers"], array(
  145. "PersonID" => $unconfirmedVolunteer["PersonID"],
  146. "FirstName" => $unconfirmedVolunteer["FirstName"],
  147. "LastName" => $unconfirmedVolunteer["LastName"]
  148. ));
  149. }
  150. $smarty->assign("meetings", $meetings);
  151. break;
  152. case "add_location":
  153. if (!$userSession->isTeacher())
  154. $scriptUrls->redirectTo("index.php", array("page" => "main"));
  155. // check user level
  156. break;
  157. case "delete_location":
  158. // check user level
  159. if (!$userSession->isTeacher())
  160. $scriptUrls->redirectTo("index.php", array("page" => "main"));
  161. $locations = $dataManager->getAllLocations();
  162. $smarty->assign("locations", $locations);
  163. break;
  164. case "add_course":
  165. if (!$userSession->isTeacher())
  166. $scriptUrls->redirectTo("index.php", array("page" => "main"));
  167. // check user level
  168. break;
  169. case "delete_course":
  170. if (!$userSession->isTeacher())
  171. $scriptUrls->redirectTo("index.php", array("page" => "main"));
  172. // check user level
  173. $courses = $dataManager->getAllCourses();
  174. $smarty->assign("courses", $courses);
  175. break;
  176. case "add_student":
  177. if (!$userSession->isTeacher())
  178. $scriptUrls->redirectTo("index.php", array("page" => "main"));
  179. $courses = $dataManager->getAllCourses();
  180. $people = $dataManager->getAllPeople();
  181. $smarty->assign("courses", $courses);
  182. $smarty->assign("people", $people);
  183. break;
  184. case "delete_student":
  185. if (!$userSession->isTeacher())
  186. $scriptUrls->redirectTo("index.php", array("page" => "main"));
  187. $courses = $dataManager->getAllCourses();
  188. $people = $dataManager->getAllPeople();
  189. $smarty->assign("courses", $courses);
  190. $smarty->assign("people", $people);
  191. break;
  192. case "add_group":
  193. if (!$userSession->isTeacher())
  194. $scriptUrls->redirectTo("index.php", array("page" => "main"));
  195. // check user level
  196. $people = $dataManager->getAllPeople();
  197. $smarty->assign("people", $people);
  198. break;
  199. case "delete_group":
  200. if (!$userSession->isTeacher())
  201. $scriptUrls->redirectTo("index.php", array("page" => "main"));
  202. // check user level
  203. $groups = $dataManager->getAllGroups();
  204. $smarty->assign("groups", $groups);
  205. break;
  206. default:
  207. $scriptUrls->redirectTo("index.php", array("page" => "main"));
  208. }
  209. // if (is_null($pageGet)) $pageGet = "main";
  210. $page = $pageGet . ".tpl";
  211. if (!$smarty->templateExists($page))
  212. $page = "error_404.tpl";
  213. $smarty->display($page);
  214. ?>