You are not logged in.

Announcement

 Téléchargez la dernière version stable de GLPI      -     Et vous, que pouvez vous faire pour le projet GLPI ? :  Contribuer
 Download last stable version of GLPI                      -     What can you do for GLPI ? :  Contribute

#1 2006-11-13 20:55:25

TomWork
Member
Registered: 2006-11-13
Posts: 4

[AUTH] CAS - 2 ajouts

Hello,

Je voulais utiliser l'authentification CAS. Cependant il manquait 2 choses :
- lors de la 1ere cnx d'un user, on n'a pas les infos du gars (qui sont recuperées en mode LDAP)
- lors du logout, on a pas de page de redir, on reste (coincé) sur la page de logout du serveur CAS

Donc j'ai rajouté ces 2 bricoles au code. Cependant, je n'ai su (enfin j'ai pas trop cherché) comment ajouté mon code au dépot. Du coup je vous le post ici sous forme de patch.

Prérequis : rajouter un champ cas_logout (varchar(255)) dans la table glpi_config

diff -r -u glpi-0.68.2/inc/setup.function.php glpi/inc/setup.function.php
--- glpi-0.68.2/inc/setup.function.php  2006-09-17 21:14:55.000000000 +0200
+++ glpi/inc/setup.function.php 2006-11-13 18:24:19.000000000 +0100
@@ -1471,6 +1471,7 @@
                echo "<tr class='tab_bg_2'><td align='center'>".$lang["setup"][174]."</td><td><input type=\"text\" name=\"cas_host\" value=\"". $cfg_glpi["cas_host"] ."\"></td></tr>";
                echo "<tr class='tab_bg_2'><td align='center'>".$lang["setup"][175]."</td><td><input type=\"text\" name=\"cas_port\" value=\"". $cfg_glpi["cas_port"] ."\"></td></tr>";
                echo "<tr class='tab_bg_2'><td align='center'>".$lang["setup"][176]."</td><td><input type=\"text\" name=\"cas_uri\" value=\"". $cfg_glpi["cas_uri"] ."\" ></td></tr>";
+               echo "<tr class='tab_bg_2'><td align='center'>".$lang["setup"][182]."</td><td><input type=\"text\" name=\"cas_logout\" value=\"". $cfg_glpi["cas_logout"] ."\" ></td></tr>";
 
                echo "</table>&nbsp;</div>";
        }
Only in glpi/inc: setup.function.php.ORI
diff -r -u glpi-0.68.2/locales/en_GB.php glpi/locales/en_GB.php
--- glpi-0.68.2/locales/en_GB.php       2006-09-17 21:14:38.000000000 +0200
+++ glpi/locales/en_GB.php      2006-11-13 18:23:42.000000000 +0100
@@ -1240,6 +1240,7 @@
 $lang["setup"][179]="Impossible to use CAS as external source of connection"; 
 $lang["setup"][180]="Use TLS"; 
 $lang["setup"][181]="ldap_start_tls does not exist"; 
+$lang["setup"][182]="Logout fallback URL"; 
 $lang["setup"][200]="Email Follow-ups"; 
 $lang["setup"][201]="Function Configuration"; 
 $lang["setup"][202]="Use Email Follow-ups"; 
@@ -1474,4 +1475,4 @@
 $lang["update"][136]="This is the new hierarchy. If it's OK, you can validate it."; 
 $lang["update"][137]="New hierarchy"; 
 $lang["update"][138]="Actual locations"; 
-?>
\ No newline at end of file
+?>
Only in glpi/locales: en_GB.php.ORI
diff -r -u glpi-0.68.2/locales/fr_FR.php glpi/locales/fr_FR.php
--- glpi-0.68.2/locales/fr_FR.php       2006-09-17 21:14:38.000000000 +0200
+++ glpi/locales/fr_FR.php      2006-11-13 18:22:31.000000000 +0100
@@ -1262,6 +1262,7 @@
 $lang["setup"][179]="Impossible d'utiliser CAS comme source de connexion externe";
 $lang["setup"][180]="Utiliser TLS";
 $lang["setup"][181]="Fonction ldap_start_tls inexistante";
+$lang["setup"][182]="Url de retour au logout";
 
 $lang["setup"][200]="Suivis par emails";
 $lang["setup"][201]="Configuration de la fonction";
Only in glpi/locales: fr_FR.php.ORI
diff -r -u glpi-0.68.2/login.php glpi/login.php
--- glpi-0.68.2/login.php       2006-09-17 21:14:37.000000000 +0200
+++ glpi/login.php      2006-11-13 16:09:02.000000000 +0100
@@ -63,7 +63,19 @@
        $auth_succeded=true;
        $identificat->extauth=1;
        $user_present = $identificat->user->getFromDBbyName($user);
-       if (!$user_present) $identificat->user->fields["name"]=$user;
+       if (!$user_present)
+       {
+               // if LDAP enabled too, get user's infos from LDAP
+               if (!empty($cfg_glpi["ldap_host"])) 
+               {
+                       $identificat->user->getFromLDAP($cfg_glpi["ldap_host"],$cfg_glpi["ldap_port"],$found_dn,$cfg_glpi["ldap_rootdn"],$cfg_glpi["ldap_pass"],$cfg_glpi['ldap_fields'],$user);
+               }
+               else
+               {
+                       // No LDAP, no additional infos
+                       $identificat->user->fields["name"]=$user;
+               }
+       }
 }
 if (isset($_POST["noCAS"])) $_SESSION["noCAS"]=1;
 
Only in glpi: login.php.ORI
diff -r -u glpi-0.68.2/logout.php glpi/logout.php
--- glpi-0.68.2/logout.php      2006-09-17 21:14:37.000000000 +0200
+++ glpi/logout.php     2006-11-13 17:21:09.000000000 +0100
@@ -42,7 +42,7 @@
 if (!isset($_SESSION["noCAS"])&&!empty($cfg_glpi["cas_host"])) {
        include ($phproot . "/lib/phpcas/CAS.php");
        phpCAS::client(CAS_VERSION_2_0,$cfg_glpi["cas_host"],intval($cfg_glpi["cas_port"]),$cfg_glpi["cas_uri"]);
-       phpCAS::logout();
+       phpCAS::logout($cfg_glpi["cas_logout"]);
 }
 
 $noCAS="";

Offline

#2 2006-11-13 21:23:35

MoYo
GLPI - Lead
From: Poitiers
Registered: 2004-09-13
Posts: 14,513
Website

Re: [AUTH] CAS - 2 ajouts

Hop intégré dans le SVN.
Merci.

J'ai modifié un peu la login.php pour qu'il récupère les infos plus logiquement.
https://dev.indepnet.net:8080/glpi/changeset/4085


MoYo - Julien Dombre - Association INDEPNET
Contribute to GLPI :    Support     Contribute     References     Freshmeat

Offline

#3 2006-11-14 01:28:12

JMD
GLPI - Lead
Registered: 2004-09-13
Posts: 9,180
Website

Re: [AUTH] CAS - 2 ajouts

Patch posté à 19h55 par un aimable contributeur   -> intégré dans le dépot subversion à 20h23

Celui qui dit que le projet GLPI est pas réactif, on lui formate son disque dur ! smile


JMD / Jean-Mathieu Doléans - Glpi-project.org - Association Indepnet
Apportez votre pierre au  projet GLPI   : Soutenir

Offline

#4 2006-11-14 01:35:51

MoYo
GLPI - Lead
From: Poitiers
Registered: 2004-09-13
Posts: 14,513
Website

Re: [AUTH] CAS - 2 ajouts

et encore j'ai du rentré chez moi smile


MoYo - Julien Dombre - Association INDEPNET
Contribute to GLPI :    Support     Contribute     References     Freshmeat

Offline

#5 2006-11-14 09:51:34

tsmr
GLPI-DEV
From: Rennes
Registered: 2005-08-26
Posts: 11,632
Website

Re: [AUTH] CAS - 2 ajouts

Allez une contribution pour acheter un pc portable + accès 3g pour Moyo smile


Xavier Caillaud
Blog GLPI Infotel

Offline

#6 2006-11-14 11:01:57

TomWork
Member
Registered: 2006-11-13
Posts: 4

Re: [AUTH] CAS - 2 ajouts

Hello,

J'ai vu les modifs, juste une question/remarque sur commondbtm.class.php pourquoi avoir basculé de is_null() a isset() ? Ne vaudrait-il pas mieux laisser comme c'etait et tester si cas_logout est vide dans logout.php. Je dis ca pour ne pas rajouter de nouveaux bug ou effets de bord dans la classe commondbtm.
Enfin, il n'y a pas la MAJ de en_EN.php. Est ce normal ?

En tout cas, qui pourrait douter que le projet glpi n'est pas réactif ? wink
Bravo pour votre travail, le projet est propre, du code a la présentation.... Well done

A+
Thomas

Offline

#7 2006-11-14 12:05:56

MoYo
GLPI - Lead
From: Poitiers
Registered: 2004-09-13
Posts: 14,513
Website

Re: [AUTH] CAS - 2 ajouts

ce n'est pas isset à la place de is_null c'est isset en plus d'is_null (attention is_null check vraiment la valeur null null pas une chaine vide ou la valeur 0).
En fait ca générait des notices dans le cas précédent.
Je viens de me rendre compte que ce n'etait pas optimal comme schéma d'ailleurs.
https://dev.indepnet.net:8080/glpi/changeset/4088

Pour le dico de langue c'est normal il faut que ca passe dans l'appli de trad.


MoYo - Julien Dombre - Association INDEPNET
Contribute to GLPI :    Support     Contribute     References     Freshmeat

Offline

Board footer

Powered by FluxBB