Project

General

Profile

Bug #7821

Activation plugin CAS sur la V1.10

Added by David Guénard almost 6 years ago. Updated over 5 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
Plugins
Target version:
Start date:
04/09/2015
Due date:
% Done:

0%

Estimated time:
Complexity:
Normal
SCRUM pts - complexity:
?

Description

Bonjour,

Après l'activation du plugin CAS et de sa configuration une erreur FATAL est rencontrée :
Fatal error: require_once(): Failed opening required '/DATA/cham-web/www/main/auth/external_login/../../inc/conf/auth.conf.php' (include_path='.:/usr/lib/php') in /DATA/cham-web/www/main/auth/external_login/ldap.inc.php on line 10

Le fichier auth.conf.php se trouve dans ./app/config/

Il faut remplacer la ligne :

require_once dirname(FILE).'/../../inc/conf/auth.conf.php'; du fichier main/auth/external_login/ldap.inc.php

par

require_once dirname(FILE).'/../../../app/config/auth.conf.php';

Avec cette correction l'erreur n'apparait plus, mais le bouton CAS non plus...

Je pense que c'est un problème de Régions de positionnement qui n'est plus géré par Bootstrap ? Mais je n'est pas la solution pour l'instant...

History

#1

Updated by David Guénard almost 6 years ago

Le problème, je pense est dans la function api_is_anonymous...

Le plugin CAS fait un test du type (dans le fichier index.php):

if (api_is_anonymous()){
....
}
Si on est pas connecté api_is_anonymous() retourne false...

Donc en remplaçant par

if (!api_is_anonymous()) {
...
}

cela fonctionne...

#2

Updated by Yannick Warnier almost 6 years ago

Il est fort probable que nous ne puissions pas vérifier cette erreur avant la publication de la 1.10.0 (il nous faut un setup CAS que nous n'avons pas).

Si tu nous fournis une solution complète avant la release stable (15 septembre) nous la considérerons pour inclusion. Sinon, cela passera à Chamilo LMS 2.0 ( fin janvier 2016?)

#3

Updated by David Guénard almost 6 years ago

J'ai étudié la question est je peux remonter des information sans pour autant donner une solution car je n'ai pas toutes les connaissance de l'API de Chamilo :

Pour afficher le bouton de login du plugin CAS, il y a une condition sur

if (api_is_anonymous()) {
....
}

Quand on arrive sur la page index.php (sans être connecté) cette fonction retourne false au lieu de true ?
Donc le bouton ne s'affiche pas.

Si on regarde la function dans main/inc/lib/api.lib.php

function api_is_anonymous($user_id = null, $db_check = false) {

    if (!isset($user_id)) {
         $user_id = api_get_user_id();
    }
    if ($db_check) {
        $info = api_get_user_info($user_id);
        if ($info['status'] == ANONYMOUS) {
            return true;
        }
    }

    $_user = api_get_user_info();
    if (isset($_user['status']) && $_user['status'] == ANONYMOUS) {
        //if ($_user['user_id'] == 0) {
        // In some cases, api_set_anonymous doesn't seem to be triggered in local.inc.php. Make sure it is.
        // Occurs in agenda for admin links - YW
        global $use_anonymous;
        if (isset($use_anonymous) && $use_anonymous) {
            api_set_anonymous();
        }

        return true;
    }

        return isset($_user['is_anonymous']) && $_user['is_anonymous'] === true;
}

$user_id est null donc execution de $user_id = api_get_user_id(); qui retourne int(0)
$_user = api_get_user_info(); -> retourne null

donc à la fin -> return isset($_user['is_anonymous']) && $_user['is_anonymous'] === true; retourne false car $_user est null

Je ne sais pas si j'ai été clair ?

#4

Updated by Yannick Warnier almost 6 years ago

Bête question: est-ce que tu as encore l'utilisateur "Joe Anonymous" sur ton portail? Normalement, api_get_user_id() devrait te renvoyer l'ID de l'utilisateur anonyme (il me semble). Évidemment, le suivi de ça est un peu compliqué puisque api_get_user_info() va chercher $_SESSION['_user'] qui est défini dans main/inc/local.inc.php selon les variables HTTP, mais bon... c'est une autre histoire.

#5

Updated by David Guénard almost 6 years ago

J'avais pas vu ta réponse, désolé pour la réponse tardive
Oui l'utilisateur est toujours présent dans la base.
Je vais continuer à chercher de ce coté, j'ai du raté quelque chose...

#6

Updated by Yannick Warnier over 5 years ago

  • Target version changed from 1.10.0 to 2.0

Je postpose cette tâche à la 2.0 en attendant. Je prépare la Release Candidate, pas de bug autorisé sans la file d'attente donc :-)

Also available in: Atom PDF