/nl/mondriaan/ict/ao/telefoonlijst/controls/SecretaresseController.php

https://gitlab.com/YuriLamijo/telefoonlijst · PHP · 266 lines · 234 code · 24 blank · 8 comment · 22 complexity · 06a006122e3fb8aa4d3a7f390d9cf69b MD5 · raw file

  1. <?php
  2. namespace nl\mondriaan\ict\ao\telefoonlijst\controls;
  3. use nl\mondriaan\ict\ao\telefoonlijst\models as MODELS;
  4. use nl\mondriaan\ict\ao\telefoonlijst\view as VIEW;
  5. use nl\mondriaan\ict\ao\telefoonlijst\utils\Foto as FOTO;
  6. class SecretaresseController {
  7. private $action;
  8. private $control;
  9. private $view;
  10. private $model;
  11. public function __construct($control, $action) {
  12. $this->control = $control;
  13. $this->action = $action;
  14. $this->view = new VIEW\View();
  15. $this->model = new MODELS\SecretaresseModel($control, $action);
  16. $isGerechtigd = $this->model->isGerechtigd();
  17. if ($isGerechtigd !== true) {
  18. $this->model->uitloggen();
  19. $this->forward('default', 'bezoeker');
  20. }
  21. }
  22. /**
  23. * execute vertaalt de action variable dynamisch naar een handler van de specifieke controller.
  24. * als de handler niet bestaat wordt de default als action ingesteld en
  25. * wordt de taak overgedragen aan de defaultAction handler. defauktAction bestaat altijd wel
  26. */
  27. public function execute() {
  28. $opdracht = $this->action . 'Action';
  29. if (!method_exists($this, $opdracht)) {
  30. $opdracht = 'defaultAction';
  31. $this->action = 'default';
  32. }
  33. $this->$opdracht();
  34. $this->view->setAction($this->action);
  35. $this->view->setControl($this->control);
  36. $this->view->toon();
  37. }
  38. private function forward($action, $control = null) {
  39. if ($control !== null) {
  40. $klasseNaam = __NAMESPACE__ . '\\' . ucFirst($control) . 'Controller';
  41. $controller = new $klasseNaam($control, $action);
  42. } else {
  43. $this->action = $action;
  44. $controller = $this;
  45. }
  46. $controller->execute();
  47. exit();
  48. }
  49. private function uitloggenAction() {
  50. $this->model->uitloggen();
  51. $this->forward('default', 'bezoeker');
  52. }
  53. private function defaultAction() {
  54. $gebruiker = $this->model->getGebruiker();
  55. $this->view->set('gebruiker', $gebruiker);
  56. $contacten = $this->model->getContacten();
  57. $this->view->set('contacten', $contacten);
  58. }
  59. private function beheerAction() {
  60. $gebruiker = $this->model->getGebruiker();
  61. $this->view->set('gebruiker', $gebruiker);
  62. $contacten = $this->model->getContacten();
  63. $this->view->set('contacten', $contacten);
  64. $afdelingen = $this->model->getAfdelingen();
  65. $this->view->set('afdelingen', $afdelingen);
  66. }
  67. private function addAction() {
  68. if ($this->model->isPostLeeg()) {
  69. $this->view->set("boodschap", "Vul gegevens in van een nieuwe medewerker");
  70. } else {
  71. $result = $this->model->addContact();
  72. switch ($result) {
  73. case IMAGE_FAILURE_SIZE_EXCEEDED:
  74. $this->view->set("boodschap", "Contact is niet toegevoegd. Foto te groot. Kies kleinere foto.");
  75. $this->view->set('form_data', $_POST);
  76. break;
  77. case IMAGE_FAILURE_TYPE:
  78. $this->view->set("boodschap", "Contact is niet toegevoegd. foto niet van jpg, gif of png formaat.");
  79. $this->view->set('form_data', $_POST);
  80. break;
  81. case REQUEST_FAILURE_DATA_INCOMPLETE:
  82. $this->view->set("boodschap", "Contact is niet toegevoegd. Niet alle vereiste data ingevuld.");
  83. $this->view->set('form_data', $_POST);
  84. break;
  85. case REQUEST_FAILURE_DATA_INVALID:
  86. $this->view->set("boodschap", "Contact is niet toegevoegd. Er is foutieve data ingestuurd (bv gebruikersnaam bestaat al).");
  87. $this->view->set('form_data', $_POST);
  88. break;
  89. case REQUEST_SUCCESS:
  90. $this->view->set("boodschap", "Contact is toegevoegd.");
  91. $this->forward("beheer");
  92. break;
  93. }
  94. }
  95. $afdelingen = $this->model->getAfdelingen();
  96. $this->view->set('afdelingen', $afdelingen);
  97. $gebruiker = $this->model->getGebruiker();
  98. $this->view->set('gebruiker', $gebruiker);
  99. }
  100. private function deleteAction() {
  101. $result = $this->model->deleteContact();
  102. switch ($result) {
  103. case REQUEST_FAILURE_DATA_INCOMPLETE:
  104. $this->view->set('boodschap', 'geen te verwijderen contact gegeven, dus niets verwijderd');
  105. break;
  106. case REQUEST_FAILURE_DATA_INVALID:
  107. $this->view->set('boodschap', 'te verwijderen contact bestaat niet');
  108. break;
  109. case REQUEST_NOTHING_CHANGED:
  110. $this->view->set('boodschap', 'Er is niets verwijderd reden onbekend.');
  111. break;
  112. case REQUEST_SUCCESS:
  113. $this->view->set('boodschap', 'Contact verwijderd.');
  114. break;
  115. }
  116. $this->forward('beheer');
  117. }
  118. private function fotoAction() {
  119. if ($this->model->isPostLeeg()) {
  120. $this->view->set("boodschap", "Wijzig hier je foto");
  121. } else {
  122. $afbeeldingInfo = FOTO::isAfbeeldingGestuurd();
  123. switch ($afbeeldingInfo) {
  124. case IMAGE_NOTHING_UPLOADED:
  125. $this->view->set("boodschap", "er is helemaal geen upload gedaan!!");
  126. break;
  127. case IMAGE_FAILURE_SIZE_EXCEEDED:
  128. $this->view->set("boodschap", "het door juow ge-uploade bestand is te groot!!");
  129. break;
  130. case IMAGE_FAILURE_TYPE:
  131. $this->view->set("boodschap", "het door jou geuploade bestand is geen afbeelding (jpg, png, gif)!!");
  132. break;
  133. case IMAGE_SUCCES:
  134. $result = $this->model->wijzigFoto();
  135. switch ($result) {
  136. case REQUEST_NOTHING_CHANGED:
  137. case IMAGE_FAILURE_SAVE_FAILED:
  138. $this->view->set('boodschap', 'er is een serverfout, de afbeelding kan niet opgeslagen worden.');
  139. break;
  140. case REQUEST_SUCCESS:
  141. $this->view->set('boodschap', 'de foto is succesvol gewijzigd');
  142. $this->forward('default');
  143. }
  144. break;
  145. }
  146. }
  147. $gebruiker = $this->model->getGebruiker();
  148. $this->view->set('gebruiker', $gebruiker);
  149. }
  150. private function anwAction() {
  151. if ($this->model->isPostLeeg()) {
  152. $this->view->set("boodschap", "Wijzig hier je gegevens");
  153. } else {
  154. $result = $this->model->wijzigAnw();
  155. switch ($result) {
  156. case REQUEST_SUCCESS:
  157. $this->view->set('boodschap', 'wijziging gelukt');
  158. break;
  159. case REQUEST_FAILURE_DATA_INCOMPLETE:
  160. $this->view->set("boodschap", "De gegevens waren incompleet. Vul compleet in!");
  161. break;
  162. case REQUEST_NOTHING_CHANGED:
  163. $this->view->set("boodschap", "Er was niets te wijzigen ");
  164. break;
  165. case REQUEST_FAILURE_DATA_INVALID:
  166. $this->view->set("boodschap", "gebruikersnaam is al in gebruik, kies een andere waarde.");
  167. break;
  168. }
  169. }
  170. $gebruiker = $this->model->getGebruiker();
  171. $this->view->set('gebruiker', $gebruiker);
  172. }
  173. /* private function updateAction() {
  174. } */
  175. private function resetwwAction() {
  176. $result = $this->model->resetWw();
  177. switch ($result) {
  178. case REQUEST_FAILURE_DATA_INCOMPLETE:
  179. $this->view->set('boodschap', 'geen te gewijziged contact gegeven, dus niets gewijziged');
  180. break;
  181. case REQUEST_FAILURE_DATA_INVALID:
  182. $this->view->set('boodschap', 'te gewijziged contact bestaat niet');
  183. break;
  184. case REQUEST_NOTHING_CHANGED:
  185. $this->view->set('boodschap', 'Er is niets gewijziged wachtwoord is al qwerty.');
  186. break;
  187. case REQUEST_SUCCESS:
  188. $this->view->set('boodschap', 'Wachtwoord is gewijzigd.');
  189. break;
  190. }
  191. $this->forward('beheer');
  192. }
  193. private function wwAction() {
  194. $gebruiker = $this->model->getGebruiker();
  195. $this->view->set('gebruiker', $gebruiker);
  196. if ($this->model->isPostLeeg()) {
  197. $this->view->set("boodschap", "Wijzig hier je wachtwoord");
  198. } else {
  199. $result = $this->model->wijzigWw();
  200. switch ($result) {
  201. case REQUEST_SUCCESS:
  202. $this->view->set('boodschap', 'wijziging wachtwoord gelukt');
  203. break;
  204. case REQUEST_FAILURE_DATA_INVALID:
  205. $this->view->set("boodschap", "nieuwe wachtwoord niet identiek of oude wachtwoord fout. Poog opnieuw!");
  206. break;
  207. case REQUEST_FAILURE_DATA_INCOMPLETE:
  208. $this->view->set("boodschap", "Niet alle velden ingevuld!");
  209. break;
  210. case REQUEST_NOTHING_CHANGED:
  211. $this->view->set("boodschap", "Er was niets te wijzigen");
  212. break;
  213. }
  214. }
  215. }
  216. private function afdelingAction() {
  217. $gebruiker = $this->model->getGebruiker();
  218. $this->view->set('gebruiker', $gebruiker);
  219. $afdelingen = $this->model->getAfdelingen2();
  220. $this->view->set("afdelingen", $afdelingen);
  221. if ($this->model->isPostLeeg()) {
  222. $this->view->set("boodschap", "Wijzig hier de afdeling gegevens");
  223. } else {
  224. $result = $this->model->wijzigAfdeling();
  225. switch ($result) {
  226. case REQUEST_FAILURE_DATA_INCOMPLETE:
  227. $this->view->set('boodschap', 'geen te gewijziged gegevens gegeven, dus niets gewijziged');
  228. break;
  229. case REQUEST_FAILURE_DATA_INVALID:
  230. $this->view->set('boodschap', 'te gewijziged gegevens bestaat niet');
  231. break;
  232. case REQUEST_NOTHING_CHANGED:
  233. $this->view->set('boodschap', 'Er is niets gewijziged');
  234. break;
  235. case REQUEST_SUCCESS:
  236. $this->view->set('boodschap', 'gegevens is gewijzigd.');
  237. break;
  238. }
  239. }
  240. }
  241. }