session.class.php 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. <?php
  2. class session
  3. {
  4. public static function createSession(array $_array, string $_type = "user")
  5. {
  6. $_SESSION[$_type] = $_array;
  7. }
  8. public static function getId(string $_type = "user")
  9. {
  10. return $_SESSION[$_type]["id"];
  11. }
  12. public static function getValue(string $_val, string $_type = "user")
  13. {
  14. return $_SESSION[$_type][$_val];
  15. }
  16. public static function getName(string $_type = "user")
  17. {
  18. return $_SESSION[$_type]["prenom"] . " " . $_SESSION[$_type]["nom"];
  19. }
  20. public static function isConnect(string $_type = "user")
  21. {
  22. return (isset($_SESSION[$_type]["id"])) ? TRUE : FALSE;
  23. }
  24. public static function accessUserByType(int $_type)
  25. {
  26. if (isset($_SESSION["user"]["id"])) {
  27. if ($_SESSION["user"]["idType"] == 1) {
  28. return TRUE;
  29. } elseif ($_SESSION["user"]["idType"] == $_type) {
  30. return TRUE;
  31. } else {
  32. return FALSE;
  33. }
  34. } else {
  35. return FALSE;
  36. }
  37. }
  38. public static function access(array $_type){
  39. return (in_array($_SESSION["user"]["idType"], $_type)) ? TRUE : FALSE;
  40. }
  41. public static function accessElement(string $_element, string $_type)
  42. {
  43. // Eléments autorisé sans authentification
  44. if (self::elementWhite($_element, $_type)) {
  45. return TRUE;
  46. } else {
  47. if (isset($_SESSION["salarie"]["id"])) { // Espaces spécifiques aux Salariés
  48. if (self::elementSalaries($_element, $_type)) {
  49. return TRUE;
  50. }
  51. } elseif (isset($_SESSION["user"]["idType"]) and $_SESSION["user"]["idType"] == 2) { // Espaces spécifiques aux Contrôleurs
  52. if (self::elementControleurs($_element, $_type)) {
  53. return TRUE;
  54. }
  55. } elseif (isset($_SESSION["user"]["idType"]) and $_SESSION["user"]["idType"] == 3) { // Espaces spécifiques aux Contrôleurs
  56. if (self::elementServiceSocial($_element, $_type)) {
  57. return TRUE;
  58. }
  59. } elseif (isset($_SESSION["user"]["idType"]) and $_SESSION["user"]["idType"] == 4) { // Espaces spécifiques aux Modérateurs du CMS
  60. if (self::elementModerateur($_element, $_type)) {
  61. return TRUE;
  62. }
  63. } elseif (isset($_SESSION["user"]["idType"]) and $_SESSION["user"]["idType"] == 5) { // Espaces spécifiques aux Membres du Bureau
  64. if (self::elementBureauCSE($_element, $_type)) {
  65. return TRUE;
  66. }
  67. } elseif (isset($_SESSION["user"]["idType"]) and $_SESSION["user"]["idType"] == 6) { // Espaces spécifiques aux Elus du CSE
  68. if (self::elementMembreCSE($_element, $_type)) {
  69. return TRUE;
  70. }
  71. }elseif (isset($_SESSION["user"]["idType"]) and $_SESSION["user"]["idType"] == 1) { // Espaces spécifiques aux Admins
  72. return TRUE;
  73. }
  74. }
  75. return FALSE;
  76. }
  77. public static function accessNotConnected(string $_element, string $_type)
  78. {
  79. return (in_array($_element, NOT_CONNECTED[$_type])) ? TRUE : FALSE;
  80. }
  81. private static function elementWhite(string $_element, string $_type)
  82. {
  83. return (in_array($_element, ACCESS_WHITE[$_type])) ? TRUE : FALSE;
  84. }
  85. private static function elementModerateur(string $_element, string $_type)
  86. {
  87. switch ($_type) {
  88. case 'page':
  89. $noAccessPage = array(
  90. "parametres",
  91. "compte",
  92. );
  93. return (core::isInArrayString($noAccessPage, $_element)) ? FALSE : TRUE;
  94. break;
  95. case 'submit':
  96. $noAccessSubmit = array(
  97. "parametres",
  98. "compte",
  99. );
  100. return (core::isInArrayString($noAccessSubmit, $_element)) ? FALSE : TRUE;
  101. break;
  102. case 'json':
  103. $noAccessJson = array(
  104. "parametres",
  105. "banque",
  106. );
  107. return (core::isInArrayString($noAccessJson, $_element)) ? FALSE : TRUE;
  108. break;
  109. default:
  110. return TRUE;
  111. break;
  112. }
  113. }
  114. private static function elementBureauCSE(string $_element, string $_type)
  115. {
  116. switch ($_type) {
  117. case 'page':
  118. $noAccessPage = array(
  119. "parametres",
  120. );
  121. return (core::isInArrayString($noAccessPage, $_element)) ? FALSE : TRUE;
  122. break;
  123. case 'submit':
  124. $noAccessSubmit = array(
  125. "parametres",
  126. );
  127. return (core::isInArrayString($noAccessSubmit, $_element)) ? FALSE : TRUE;
  128. break;
  129. case 'json':
  130. $noAccessJson = array(
  131. "parametres",
  132. );
  133. return (core::isInArrayString($noAccessJson, $_element)) ? FALSE : TRUE;
  134. break;
  135. default:
  136. return TRUE;
  137. break;
  138. }
  139. }
  140. private static function elementMembreCSE(string $_element, string $_type)
  141. {
  142. switch ($_type) {
  143. case 'page':
  144. $noAccessPage = array(
  145. "parametres",
  146. );
  147. return (core::isInArrayString($noAccessPage, $_element)) ? FALSE : TRUE;
  148. break;
  149. case 'submit':
  150. $noAccessSubmit = array(
  151. "parametres",
  152. );
  153. return (core::isInArrayString($noAccessSubmit, $_element)) ? FALSE : TRUE;
  154. break;
  155. case 'json':
  156. $noAccessJson = array(
  157. "parametres",
  158. );
  159. return (core::isInArrayString($noAccessJson, $_element)) ? FALSE : TRUE;
  160. break;
  161. default:
  162. return TRUE;
  163. break;
  164. }
  165. }
  166. private static function elementSalaries(string $_element, string $_type)
  167. {
  168. return (in_array($_element, ACCESS_SALARIES[$_type])) ? TRUE : FALSE;
  169. }
  170. private static function elementControleurs(string $_element, string $_type)
  171. {
  172. return (in_array($_element, ACCESS_CONTROLEURS[$_type])) ? TRUE : FALSE;
  173. }
  174. private static function elementServiceSocial(string $_element, string $_type)
  175. {
  176. return (in_array($_element, ACCESS_SOCIAL[$_type])) ? TRUE : FALSE;
  177. }
  178. }