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,8 +47,8 @@ Logiciel testé et validé sur les configurations suivantes :
47 47
48 VERSION ACTUELLE 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 - Bugfix important sur détection du role "Utilisateur" pour les personnes du ldap qui ne sont pas dans la table utilisateurs !!! 52 - Bugfix important sur détection du role "Utilisateur" pour les personnes du ldap qui ne sont pas dans la table utilisateurs !!!
53 - Creation d'un fake utilisateur pour simuler un utilisateur qui n'est pas dans la table utilisateurs (et tester le cas ci-dessus) 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 - Ajout de tests avec cet utilisateur 54 - Ajout de tests avec cet utilisateur
@@ -67,8 +67,13 @@ CHANGEMENTS IMPORTANTS (MILESTONES) @@ -67,8 +67,13 @@ CHANGEMENTS IMPORTANTS (MILESTONES)
67 67
68 Liste complète des évolutions: https://gitlab.irap.omp.eu/epallier/labinvent/commits/master 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 28/08/2017 Version: 2.7.6 74 28/08/2017 Version: 2.7.6
71 - renforcement important des TESTS : généralisation, refactorisation, simplification + numérotation systématique (cf doc ACL) 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 - 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 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 06/07/2017 Version: 2.7.3 79 06/07/2017 Version: 2.7.3
src/Controller/AppController.php
@@ -49,9 +49,11 @@ class AppController extends Controller { @@ -49,9 +49,11 @@ class AppController extends Controller {
49 'Super Administrateur' => self::PROFILE_SUPERADMIN 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 public static function getRoleLevel($role) { 59 public static function getRoleLevel($role) {
@@ -163,9 +165,8 @@ class AppController extends Controller { @@ -163,9 +165,8 @@ class AppController extends Controller {
163 return false; 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 $configuration = $this->confLabinvent; 170 $configuration = $this->confLabinvent;
170 $username = $user ? $user[$configuration->authentificationType_ldap][0] : $this->LdapAuth->user($configuration->authentificationType_ldap)[0]; 171 $username = $user ? $user[$configuration->authentificationType_ldap][0] : $this->LdapAuth->user($configuration->authentificationType_ldap)[0];
171 $priviledgedUser = TableRegistry::get('Users') 172 $priviledgedUser = TableRegistry::get('Users')
@@ -174,18 +175,17 @@ class AppController extends Controller { @@ -174,18 +175,17 @@ class AppController extends Controller {
174 //->where(['username' => $this->LdapAuth->user('cn')[0]]) 175 //->where(['username' => $this->LdapAuth->user('cn')[0]])
175 ->first(); 176 ->first();
176 //if (! $priviledgedUser) $priviledgedUser = "Unpriviledged User (not in table utilisateurs)"; 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 public function getUserRole($user=null) { 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 private function userHasRole($expectedRole, $ORMORE=false) { 191 private function userHasRole($expectedRole, $ORMORE=false) {
@@ -292,8 +292,9 @@ class AppController extends Controller { @@ -292,8 +292,9 @@ class AppController extends Controller {
292 $this->set('configuration', $configuration); 292 $this->set('configuration', $configuration);
293 $this->request->session()->write("authType", $configuration->authentificationType_ldap); 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 $user = TableRegistry::get('Users')->find() 299 $user = TableRegistry::get('Users')->find()
299 ->where(['username' => $this->LdapAuth->user($configuration->authentificationType_ldap)[0]]) 300 ->where(['username' => $this->LdapAuth->user($configuration->authentificationType_ldap)[0]])
src/Template/Layout/default.ctp
@@ -115,7 +115,7 @@ $cakeDescription = 'Labinvent 2'; @@ -115,7 +115,7 @@ $cakeDescription = 'Labinvent 2';
115 </i></td> 115 </i></td>
116 <td id="version"> 116 <td id="version">
117 <!-- VERSION M.m.f.b (version (M)ajeure, version (m)ineure, numero de nouvelle (f)onctionnalite, numero de (b)ugfix) --> 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 <br/> 119 <br/>
120 <font color="black"><a href="<?php 120 <font color="black"><a href="<?php
121 121