Commit c3b1f0289f88b6aa382ad14d7784c0952523bce9

Authored by Alexandre
1 parent 9cfb4997

Version: 2.4.3.11

Bugfixes et refactoring getMailFromLDAP & getLoginFromLdap
			
Version majeure en cours (2.5): https://projects.irap.omp.eu/versions/99

ROADMAP: https://projects.irap.omp.eu/projects/labinvent/roadmap
README-LABINVENT.md
@@ -50,17 +50,10 @@ Logiciel testé et validé sur les configurations suivantes : @@ -50,17 +50,10 @@ Logiciel testé et validé sur les configurations suivantes :
50 50
51 VERSION ACTUELLE 51 VERSION ACTUELLE
52 52
53 -Date: 13/06/2016  
54 -Version: 2.4.3.10  
55 -  
56 -!!! Modification BD !!!  
57 -  
58 -Ajout de tous les attributs faisant partie des demandes de la version 2.04 dans la base de données  
59 -+ Ajout de ces attributs dans les modèles et les fixtures.  
60 -  
61 -  
62 -Demande (terminé) : https://projects.irap.omp.eu/issues/3799 53 +Date: 14/06/2016
  54 +Version: 2.4.3.11
63 55
  56 +Bugfixes et refactoring getMailFromLDAP & getLoginFromLdap
64 57
65 Version majeure en cours (2.5): https://projects.irap.omp.eu/versions/99 58 Version majeure en cours (2.5): https://projects.irap.omp.eu/versions/99
66 59
src/Controller/UsersController.php
@@ -182,47 +182,25 @@ class UsersController extends AppController @@ -182,47 +182,25 @@ class UsersController extends AppController
182 // called from Javascript (Ajax) 182 // called from Javascript (Ajax)
183 public function getLdapLogin($userName) { 183 public function getLdapLogin($userName) {
184 184
185 - $ldapConnection = TableRegistry::get('LdapConnections');  
186 - $u = $ldapConnection->getAllLdapUsers();  
187 -  
188 - for($i = 0; $i < $ldapConnection->getNbUsers(); $i++) {  
189 -  
190 - //if (!empty($u[$i][$this->request->session()->read('authType')][0])) {  
191 - if ($userName == $u[$i]['givenname'][0].' '.$u[$i]['sn'][0]) {  
192 - $this->set ( 'login', $u[$i][$this->request->session()->read('authType')][0] );  
193 - }  
194 - //} 185 + $u = TableRegistry::get('LdapConnections')->getListLoginUsers();
  186 +
  187 + if(isset($u[$userName])) {
  188 + $this->set ('login', $u[$userName]);
195 } 189 }
196 - 190 +
197 $this->viewBuilder()->layout = 'ajax'; 191 $this->viewBuilder()->layout = 'ajax';
198 } 192 }
199 193
200 // called from Javascript (Ajax) 194 // called from Javascript (Ajax)
201 public function getLdapEmail($userName) { 195 public function getLdapEmail($userName) {
202 - $ldapConnection = TableRegistry::get('LdapConnections');  
203 - $u = $ldapConnection->getAllLdapUsers();  
204 196
205 - if (isset($u[0]['mailperso'])) {  
206 - $typeMail = 'mailperso'; 197 + $u = TableRegistry::get('LdapConnections')->getListEmailUsers();
  198 +
  199 + if(isset($u[$userName])) {
  200 + $this->set ('email', $u[$userName]);
207 } 201 }
208 else { 202 else {
209 - $typeMail = 'mail';  
210 - }  
211 -  
212 - for($i = 0; $i < $ldapConnection->getNbUsers(); $i++) {  
213 -  
214 - //if (!empty($u[$i][$this->request->session()->read('authType')][0])) {  
215 -  
216 - if ($userName == $u[$i]['givenname'][0].' '.$u[$i]['sn'][0]) {  
217 - if (isset($u[$i][$typeMail][0]) && filter_var($u[$i][$typeMail][0], FILTER_VALIDATE_EMAIL)) {  
218 - $this->set ('email', $u[$i][$typeMail][0] );  
219 - } else {  
220 - $this->set ('email', ' ');  
221 - }  
222 - }  
223 - //}  
224 -  
225 - 203 + $this->set ('email', ' ');
226 } 204 }
227 205
228 $this->viewBuilder()->layout = 'ajax'; 206 $this->viewBuilder()->layout = 'ajax';
src/Model/Table/LdapConnectionsTable.php
@@ -147,7 +147,7 @@ class LdapConnectionsTable extends AppTable { @@ -147,7 +147,7 @@ class LdapConnectionsTable extends AppTable {
147 if ($this->USE_LDAP) { 147 if ($this->USE_LDAP) {
148 $ldapConnection = ldap_connect($this->host, $this->port); 148 $ldapConnection = ldap_connect($this->host, $this->port);
149 ldap_set_option($ldapConnection, LDAP_OPT_PROTOCOL_VERSION, 3); 149 ldap_set_option($ldapConnection, LDAP_OPT_PROTOCOL_VERSION, 3);
150 - $results = ldap_search($ldapConnection, $this->baseDn, $this->authenticationType . '=' . $userName); 150 + $results = ldap_search($ldapConnection, $this->baseDn, '('.$this->authenticationType . '=' . $userName.')');
151 return ldap_get_entries($ldapConnection, $results); 151 return ldap_get_entries($ldapConnection, $results);
152 } 152 }
153 else return array($this->getFakeLdapUser($userName)); 153 else return array($this->getFakeLdapUser($userName));
@@ -192,6 +192,53 @@ class LdapConnectionsTable extends AppTable { @@ -192,6 +192,53 @@ class LdapConnectionsTable extends AppTable {
192 } 192 }
193 193
194 /** 194 /**
  195 + * Return a list of login ofUsers with key = username & value = login
  196 + */
  197 + public function getListLoginUsers() {
  198 + $u = $this->getAllLdapUsers();
  199 + $utilisateurs= [];
  200 +
  201 + if($this->USE_LDAP) {
  202 + for($i = 0; $i < $u['count']; $i++) {
  203 + $utilisateurs[$u[$i]['givenname'][0].' '.$u[$i]['sn'][0]] = $u[$i][$this->authenticationType][0];
  204 + }
  205 + }
  206 + else {
  207 + for($i = 0; $i < sizeof($u)-1; $i++) {
  208 + $utilisateurs[$u[$i]['givenname'][0].' '.$u[$i]['sn'][0]] = $u[$i][$this->authenticationType][0];
  209 + }
  210 + }
  211 +
  212 + return $utilisateurs;
  213 + }
  214 +
  215 + /**
  216 + * Return a list of mail of Users with key = username & value = mail
  217 + */
  218 + public function getListEmailUsers() {
  219 + $u = $this->getAllLdapUsers();
  220 + $utilisateurs= [];
  221 +
  222 + if($this->USE_LDAP) {
  223 + for($i = 0; $i < $u['count']; $i++) {
  224 + if(isset($u[$i]['mail'][0])) {
  225 + $utilisateurs[$u[$i]['givenname'][0].' '.$u[$i]['sn'][0]] = $u[$i]['mail'][0];
  226 + }
  227 + else {
  228 + $utilisateurs[$u[$i]['givenname'][0].' '.$u[$i]['sn'][0]] = 'N/A';
  229 + }
  230 + }
  231 + }
  232 + else {
  233 + for($i = 0; $i < sizeof($u)-1; $i++) {
  234 + $utilisateurs[$u[$i]['givenname'][0].' '.$u[$i]['sn'][0]] = $u[$i]['mail'][0];
  235 + }
  236 + }
  237 +
  238 + return $utilisateurs;
  239 + }
  240 +
  241 + /**
195 * Return size of list users 242 * Return size of list users
196 */ 243 */
197 public function getNbUsers() { 244 public function getNbUsers() {
src/Template/Layout/default.ctp
@@ -94,7 +94,7 @@ $cakeDescription = &#39;Labinvent 2.0&#39;; @@ -94,7 +94,7 @@ $cakeDescription = &#39;Labinvent 2.0&#39;;
94 </i></td> 94 </i></td>
95 <td id="version"> 95 <td id="version">
96 <!-- VERSION M.m.f.b (version (M)ajeure, version (m)ineure, numero de nouvelle (f)onctionnalite, numero de (b)ugfix) --> 96 <!-- VERSION M.m.f.b (version (M)ajeure, version (m)ineure, numero de nouvelle (f)onctionnalite, numero de (b)ugfix) -->
97 - <font color="black">VERSION 2.4.3.10 (13/06/2016)</font> 97 + <font color="black">VERSION 2.4.3.11 (14/06/2016)</font>
98 </td> 98 </td>
99 </tr> 99 </tr>
100 </table> 100 </table>
src/Template/Materiels/index.ctp
@@ -189,7 +189,7 @@ if (isset ( $STATUS )) { @@ -189,7 +189,7 @@ if (isset ( $STATUS )) {
189 'confirm' => 'Êtes-vous sur de vouloir faire une demande d\'archive '.$materiel->designation.' ?']); 189 'confirm' => 'Êtes-vous sur de vouloir faire une demande d\'archive '.$materiel->designation.' ?']);
190 190
191 } 191 }
192 - else if (h($materiel->status) == 'TOBEARCHIVED' && $role != 'Responsable'){ 192 + else if (h($materiel->status) == 'TOBEARCHIVED' && !in_array($role, ['Responsable', 'Super Administrateur'])){
193 echo $this->Html->link('<i class="icon-inbox"></i>', 193 echo $this->Html->link('<i class="icon-inbox"></i>',
194 ['action' => 'statusArchived', $materiel->id], 194 ['action' => 'statusArchived', $materiel->id],
195 ['title' => 'Sortir de l\'inventaire', 'style' => 'margin: 0 2px', 'escape' => false, 195 ['title' => 'Sortir de l\'inventaire', 'style' => 'margin: 0 2px', 'escape' => false,