cms.user.php 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258
  1. <?php
  2. if(core::ifGet("add") AND access::ifAccesss("add-user")) {
  3. $id_form = '<input type="hidden" name="id" value="add">';
  4. $submit = "Ajouter un profil";
  5. $titre = "Ajouter un profil";
  6. $protect = 0;
  7. } else {
  8. if( core::ifGet("id") == FALSE OR (core::ifGet("id") AND session::getId() == core::getGet("id"))){
  9. $user = user::getUser(session::getId());
  10. $submit = "Modifier votre profil";
  11. $titre = "Votre fiche de profil";
  12. $protect = 1;
  13. if (debug::isFile("debug")) {
  14. debug::log($user, "Données brutes user");
  15. }
  16. } else {
  17. if(access::ifAccesss("add-user")){
  18. $user = user::getUser(core::getGet("id"));
  19. if(is_array($user)){
  20. $submit = "Modifier ce profil";
  21. $titre = "Fiche de " . $user["prenom"] . " " . $user["nom"];
  22. if($user["deleted"] == 1){
  23. $titre .= " (Supprimée)";
  24. $protect = 2;
  25. } else {
  26. $protect = 0;
  27. }
  28. } else {
  29. get::page("unknow"); exit();
  30. }
  31. } else {
  32. get::page("unknow"); exit();
  33. }
  34. }
  35. $id_form = '<input type="hidden" name="id" value="' . $user["id"] . '">';
  36. }
  37. ?>
  38. <header class="d-flex flex-column flex-md-row align-items-md-center p-3 bg-light row">
  39. <div class="col-11">
  40. <h2 class="bd-title" id="content">
  41. <span><?= $titre ?></span>
  42. </h2>
  43. <?php if (isset($user["id"]) && session::getId() != $user["id"] && $protect != 2): ?>
  44. <div class="fix-container-button-nav">
  45. <a href="/submit.php?from=parametres-user-delete&id=<?= $user['id']; ?>" onclick="return confirm('Voulez-vous supprimer le compte de <?= $user["prenom"] . " " . $user["nom"]; ?> ?')">
  46. <button type="submit" class="btn btn-outline-danger btn-sm"><?= icon::getFont(["icon" => "bi-trash-fill"]); ?> Supprimer</button>
  47. </a>
  48. </div>
  49. <?php elseif ($protect == 2): ?>
  50. <div class="fix-container-button-nav">
  51. <a href="/submit.php?from=parametres-user-restore&id=<?= $user['id']; ?>" onclick="return confirm('Voulez-vous restaurer le compte de <?= $user["prenom"] . " " . $user["nom"]; ?> ?')">
  52. <button type="submit" class="btn btn-outline-danger btn-sm"><?= icon::getFont(["icon" => "bi bi-box2-fill"]); ?> Restaurer</button>
  53. </a>
  54. </div>
  55. <?php endif; ?>
  56. </div>
  57. </header>
  58. <?php
  59. if(core::getGet("id")){
  60. echo core::filAriane(array(
  61. "current" => $titre,
  62. "arbo" => array(
  63. "Administration" => NULL,
  64. "Utilisateurs" => "/parametres-users.html",
  65. $titre => "#")
  66. ));
  67. }
  68. ?>
  69. <?php if (isset($user["last_connect"])): ?>
  70. <?php callout::print([
  71. "type" => "info",
  72. "size" => "tiny",
  73. "style" => "margin:-5px 0;",
  74. "p" => "Dernière connexion le " . core::convertDate($user["last_connect"]),
  75. ]); ?>
  76. <?php endif; ?>
  77. <br />
  78. <?php if($protect != 2): ?>
  79. <form id="form-user" method="post" action="/submit.php" oninput='password2.setCustomValidity(password2.value != password.value ? "Les mots de passe ne sont pas identiques" : "")' onsubmit="return(false);">
  80. <input type="hidden" name="from" value="user">
  81. <?php
  82. echo $id_form;
  83. endif;
  84. ?>
  85. <div class="form-group">
  86. <label>Type de compte</label>
  87. <?php
  88. $id_type = [
  89. 2 => "Contrôleur QRCode (émargement)",
  90. 3 => "Assistance sociale",
  91. 4 => "Modérateur du CMS",
  92. 5 => "Membre du Bureau du CSE",
  93. 6 => "Elu du CSE",
  94. 7 => "Comptable",
  95. 1 => "Administrateur"
  96. ];
  97. ?>
  98. <?php if($protect == 0): ?>
  99. <?php
  100. html::printSelect('name="id_type" class="form-select"', $id_type, @$user["id_type"]);
  101. ?>
  102. <?php endif; ?>
  103. <?php if($protect == 1 OR $protect == 2): ?>
  104. <?php
  105. html::printSelect('class="form-control" disabled', $id_type, @$user["id_type"]);
  106. html::printInput('type="hidden" name="id_type"', $user["id_type"]);
  107. ?>
  108. <?php endif; ?>
  109. </div>
  110. <br />
  111. <?php
  112. if(access::ifAccesss("add-user") AND core::ifGet("id") AND (isset($user["deleted"]) AND $user["deleted"] == 0)) { ?>
  113. <div class="form-group">
  114. <label>Rôles aditionnels</label>
  115. <?= html::printInput('type="text" name="tags" id="tags"', @$user["tags"]) ?>
  116. </div>
  117. <br />
  118. <?php
  119. } elseif(isset($user["tags"])) { ?>
  120. <div class="form-group">
  121. <label>Rôles aditionnels</label>
  122. <?= html::printInput('type="text" class="form-control" name="tags" readonly="readonly"', @$user["tags"]) ?>
  123. </div>
  124. <br />
  125. <?php
  126. } else {
  127. html::printInput('type="hidden" name="tags"');
  128. }
  129. ?>
  130. <div class="form-group">
  131. <label>Prénom</label>
  132. <?php
  133. $confPrenom = 'type="text" name="prenom" class="form-control" ';
  134. $confPrenom .= $protect == 2 ? 'readonly="readonly"' : 'required';
  135. html::printInput($confPrenom, @$user["prenom"]);
  136. ?>
  137. </div>
  138. <br />
  139. <div class="form-group">
  140. <label>nom</label>
  141. <?php
  142. $confNom = 'type="text" name="nom" class="form-control" ';
  143. $confNom .= $protect == 2 ? 'readonly="readonly"' : 'required';
  144. html::printInput($confNom, @$user["nom"]);
  145. ?>
  146. </div>
  147. <br />
  148. <div class="form-group">
  149. <label>Email</label>
  150. <?php
  151. $confEmail = 'type="text" name="email" class="form-control" ';
  152. $confEmail .= $protect == 2 ? 'readonly="readonly"' : 'required';
  153. html::printInput($confEmail, @$user["email"]);
  154. ?>
  155. </div>
  156. <br />
  157. <?php if($protect != 2): ?>
  158. <div class="form-group">
  159. <label>Mot de passe</label>
  160. <?php
  161. $confPassword = 'type="password" class="form-control" minlength="8" maxlength="25" name="password" ';
  162. $confPassword .= core::ifGet("add") ? 'required"' : NULL;
  163. html::printInput($confPassword);
  164. ?>
  165. </div>
  166. <br />
  167. <div class="form-group">
  168. <label>Confirmation du mot de passe</label>
  169. <?php
  170. $confPassword2 = 'type="password" class="form-control" minlength="8" maxlength="25" name="password2" ';
  171. $confPassword2 .= core::ifGet("add") ? 'required"' : NULL;
  172. html::printInput($confPassword2);
  173. ?>
  174. </div>
  175. <br />
  176. <div class="form-group">
  177. <label>Google Authenticator</label>
  178. <?php
  179. $googleAuthenticator = [
  180. 0 => "Désactivé",
  181. 1 => "Activé",
  182. ];
  183. html::printSelect('name="googleAuthenticator" class="form-select"', $googleAuthenticator, @$user["googleAuthenticator"]);
  184. ?>
  185. </div>
  186. <br />
  187. <?php endif; ?>
  188. <?php if(isset($user["googleAuthenticator"]) AND $user["googleAuthenticator"] == 1 AND $protect == 1): ?>
  189. <div class="card text-center" style="width: 18rem;">
  190. <?php
  191. $qrCodeUrl = googleAuthenticator::getGoogleUrl("CMS CSE Invent: " . ENVIRONNEMENT, user::getMyGoogleAuthenticator(session::getId()));
  192. myQrcode::printQRCode($qrCodeUrl);
  193. ?>
  194. <div class="card-footer text-body-secondary">
  195. QRCode à scanner dans votre application Google Authenticator<br />
  196. <a href="https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2" target="_blank"><?= icon::getFont(["type" => "bi bi-android2", "size" => "40px"]) ?></a>&nbsp;&nbsp;&nbsp;<a href="https://apps.apple.com/fr/app/google-authenticator/id388497605" target="_blank"><?= icon::getFont(["type" => "bi bi-apple", "size" => "40px"]) ?></a>
  197. </div>
  198. </div>
  199. <br />
  200. <?php endif; ?>
  201. <?php if($protect == 0): ?>
  202. <div class="form-group">
  203. <label>Etat du compte</label>
  204. <?php
  205. $actif = [
  206. 0 => "Compte désactivé",
  207. 1 => "Compte activé",
  208. ];
  209. html::printSelect('name="actif" class="form-select"', $actif, @$user["actif"]);
  210. ?>
  211. </div>
  212. <br />
  213. <?php endif; ?>
  214. <?php if($protect == 1): ?>
  215. <?= html::printInput('type="hidden" name="actif"', $user["actif"]); ?>
  216. <?php endif; ?>
  217. <?php if((isset($user["deleted"]) AND $user["deleted"] == 0) OR core::ifGet("add")) : ?>
  218. <input class="btn btn-primary btn-lg" style="width: 100%; margin-bottom:20px;" type="button" value="<?php echo $submit ?>" onclick="validateAndSubmit()">
  219. <?php endif; ?>
  220. </form>
  221. <script>
  222. $(document).ready(function () {
  223. $('#tags').inputTags({
  224. autocomplete: {
  225. values: <?php echo tags::getJquery(1) ?>,
  226. only: true
  227. },
  228. max: 3
  229. });
  230. });
  231. </script>
  232. <?php
  233. get::javascript("user");
  234. ?>