You are not logged in.
Pages: 1
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> </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
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
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 !
JMD / Jean-Mathieu Doléans - Glpi-project.org - Association Indepnet
Apportez votre pierre au projet GLPI : Soutenir
Offline
et encore j'ai du rentré chez moi
MoYo - Julien Dombre - Association INDEPNET
Contribute to GLPI : Support Contribute References Freshmeat
Offline
Allez une contribution pour acheter un pc portable + accès 3g pour Moyo
Xavier Caillaud
Blog GLPI Infotel
Offline
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 ?
Bravo pour votre travail, le projet est propre, du code a la présentation.... Well done
A+
Thomas
Offline
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
Pages: 1