Commit e6cae794d7d7e063afdad1ed4b08f7bdae5572d5

Authored by Etienne Pallier
1 parent 83926464

Renommage plus explicite des fonctions et variables

README-LABINVENT.md
... ... @@ -47,8 +47,8 @@ Logiciel testé et validé sur les configurations suivantes :
47 47  
48 48 VERSION ACTUELLE
49 49  
50   -Date: 29/08/2017
51   -Version: 2.7.8
  50 +Date: 30/08/2017
  51 +Version: 2.7.9
52 52 - Bugfix important sur détection du role "Utilisateur" pour les personnes du ldap qui ne sont pas dans la table utilisateurs !!!
53 53 - Creation d'un fake utilisateur pour simuler un utilisateur qui n'est pas dans la table utilisateurs (et tester le cas ci-dessus)
54 54 - Ajout de tests avec cet utilisateur
... ... @@ -67,8 +67,13 @@ CHANGEMENTS IMPORTANTS (MILESTONES)
67 67  
68 68 Liste complète des évolutions: https://gitlab.irap.omp.eu/epallier/labinvent/commits/master
69 69  
  70 +30/08/2017 Version: 2.7.9
  71 + - fonction intelligente AppController::getUserRole() qui donne le role "Utilisateur" par défaut pour un utilisateur non privilégié
  72 + - Refactorisation des ACL (authorizations) dans isAuthorized() et beforeFilter()
  73 +
70 74 28/08/2017 Version: 2.7.6
71 75 - renforcement important des TESTS : généralisation, refactorisation, simplification + numérotation systématique (cf doc ACL)
  76 + - nouvelle classe General dont héritent tous les tests
72 77 - nouvelle philo mise en place : 1 fichier tests par Controleur (c'était déjà le cas), puis pour un controleur donné, tri des tests par ACTION, puis pour chaque action, tests systématique de tous les ROLES (profils) avec les cas particuliers de chacun
73 78  
74 79 06/07/2017 Version: 2.7.3
... ...
src/Controller/AppController.php
... ... @@ -49,9 +49,11 @@ class AppController extends Controller {
49 49 'Super Administrateur' => self::PROFILE_SUPERADMIN
50 50 ];
51 51  
52   - // Current role (profile) of the user
53   - private $CURRENT_USER = null;
54   - //private $CURRENT_ROLE = null;
  52 + // Current priviledged USER (if so, otherwise = NULL)
  53 + private $CURRENT_PRIVILEDGED_USER = null;
  54 +
  55 + // Current ROLE (by default = "Utilisateur")
  56 + private $CURRENT_ROLE = null;
55 57  
56 58  
57 59 public static function getRoleLevel($role) {
... ... @@ -163,9 +165,8 @@ class AppController extends Controller {
163 165 return false;
164 166 }
165 167  
166   - //public function getUser($user=null) { return $this->getTablePriviledgedUserFromCurrentSessionUser($user); }
167   - public function getTablePriviledgedUserFromCurrentSessionUser($user=null) {
168   - if (! $this->CURRENT_USER) {
  168 + public function getTablePriviledgedUserFromCurrentSessionUserIfExists($user=null) {
  169 + if (! $this->CURRENT_PRIVILEDGED_USER) {
169 170 $configuration = $this->confLabinvent;
170 171 $username = $user ? $user[$configuration->authentificationType_ldap][0] : $this->LdapAuth->user($configuration->authentificationType_ldap)[0];
171 172 $priviledgedUser = TableRegistry::get('Users')
... ... @@ -174,18 +175,17 @@ class AppController extends Controller {
174 175 //->where(['username' => $this->LdapAuth->user('cn')[0]])
175 176 ->first();
176 177 //if (! $priviledgedUser) $priviledgedUser = "Unpriviledged User (not in table utilisateurs)";
177   - $this->CURRENT_USER = $priviledgedUser;
  178 + $this->CURRENT_PRIVILEDGED_USER = $priviledgedUser;
178 179 }
179   - return $this->CURRENT_USER;
  180 + return $this->CURRENT_PRIVILEDGED_USER;
180 181 }
181 182 public function getUserRole($user=null) {
182   - $priviledgedUser = $this->getPriviledgedUserRole($user);
183   - // default role is "Utilisateur" (for people who are not in the table utilisateurs)
184   - if (! $priviledgedUser) return 'Utilisateur';
185   - return $priviledgedUser['role'];
186   - }
187   - public function getPriviledgedUserRole($user=null) {
188   - return $this->getTablePriviledgedUserFromCurrentSessionUser($user);
  183 + if (! $this->CURRENT_ROLE) {
  184 + $priviledgedUser = $this->getTablePriviledgedUserFromCurrentSessionUserIfExists($user);
  185 + // default role is "Utilisateur" (for people who are not in the table utilisateurs)
  186 + $this->CURRENT_ROLE = ($priviledgedUser) ? $priviledgedUser['role'] : 'Utilisateur';
  187 + }
  188 + return $this->CURRENT_ROLE;
189 189 }
190 190  
191 191 private function userHasRole($expectedRole, $ORMORE=false) {
... ... @@ -292,8 +292,9 @@ class AppController extends Controller {
292 292 $this->set('configuration', $configuration);
293 293 $this->request->session()->write("authType", $configuration->authentificationType_ldap);
294 294  
295   - //$user = $this->getUser();
296   - $priviledgedUser = $this->getTablePriviledgedUserFromCurrentSessionUser();
  295 + // ATTENTION, $priviledgedUser = NULL si l'utilisateur courant n'est pas un utilisateur privilégié
  296 + // (c'est à dire s'il n'est pas dans la table "utilisateurs")
  297 + $priviledgedUser = $this->getTablePriviledgedUserFromCurrentSessionUserIfExists();
297 298 /*
298 299 $user = TableRegistry::get('Users')->find()
299 300 ->where(['username' => $this->LdapAuth->user($configuration->authentificationType_ldap)[0]])
... ...
src/Template/Layout/default.ctp
... ... @@ -115,7 +115,7 @@ $cakeDescription = 'Labinvent 2';
115 115 </i></td>
116 116 <td id="version">
117 117 <!-- VERSION M.m.f.b (version (M)ajeure, version (m)ineure, numero de nouvelle (f)onctionnalite, numero de (b)ugfix) -->
118   - <font color="black">VERSION 2.7.8 (29/08/2017)</font>
  118 + <font color="black">VERSION 2.7.9 (30/08/2017)</font>
119 119 <br/>
120 120 <font color="black"><a href="<?php
121 121  
... ...