Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] [Résolu] Utilisation de jAuth dans CKFinder

Bonjour à tous,

J'ai essayé de me débrouiller seul mais je galère pour intégrer CKFinder dans mon appli Jelix.

J'ai bien "installé" CKEditor et CKFinder dans le répertoire de jelix (le "lib" commun à toutes mes applis). Ca fonctionne bien sauf pour une petite chose...

Les auteurs de CKFinder recommande de faire appel à une fonction qui vérifie que l'utilisateur est bien authentifié afin d'éviter que n'importe qui ne puisse uploader des fichiers. J'ai essayé de faire des tests sur $_SESSION['JELIX_USER'] mais l'objet est sérialisé et ça me retourne une erreur. J'ai donc voulu faire un "require" sur jelix/auth/jAuth.class.php mais je me heurte à des problèmes de chemins d'accès. J'ai donc fait un "require" sur le jelix/init.php et là ça charge bien, sauf qu'ensuite j'ai d'autres erreurs de plus haut niveau pour l'accès au DAO par exemple...

Je me demande si je ne devrais pas inclure le application.init.php de mon appli mais le config de CKFinder est commun pour toutes les applis...

Comment m'en sortir ? Quelqu'un aurait une idée ?

Merci d'avance, Yannick.


Yannick DEVOS - http://www.nature-mekong.com/

  [Opened] Re: Utilisation de jAuth dans CKFinder

Je précise un peu.

Le code dans CKFinder/config.php (en résumé) :

require ('lib-jelix/jelix/init.php');
session_start();
...
...
function CheckAuthentication()
{ 
      return (isset($_SESSION['JELIX_USER']) && $_SESSION['JELIX_USER']->login!='');
}

Ca marche "bien" quand l'utilisateur n'est pas connecté. Par contre si l'utilisateur est connecté j'ai ça :

Notice: Trying to get property of non-object in /Users/yan/Sites/jelix/lib-1.2.5/jelix/core/selector/jSelectorLoc.class.php on line 41

Notice: Trying to get property of non-object in /Users/yan/Sites/jelix/lib-1.2.5/jelix/core/selector/jSelectorLoc.class.php on line 44

Fatal error: Uncaught exception 'jExceptionSelector' with message 'jelix module is not enabled !!' in /Users/yan/Sites/jelix/lib-1.2.5/jelix/core/selector/jSelectorDao.class.php:48 Stack trace: #0 /Users/yan/Sites/jelix/lib-1.2.5/jelix/core/selector/jSelectorModule.class.php(44): jSelectorDao->_createPath() #1 /Users/yan/Sites/jelix/lib-1.2.5/jelix/core/selector/jSelectorDao.class.php(42): jSelectorModule->__construct('jauthdb~jelixus...') #2 /Users/yan/Sites/jelix/lib-1.2.5/jelix/init.php(108): jSelectorDao->__construct('jauthdb~jelixus...', 'mysql', false) #3 [internal function]: jelix_autoload('cDaoRecord_jaut...') #4 [internal function]: spl_autoload_call('cDaoRecord_jaut...') #5 /Users/yan/Sites/jelix/lib-1.2.5/jelix-www/ckfinder/config.php(4): session_start() #6 /Users/yan/Sites/jelix/lib-1.2.5/jelix-www/ckfinder/core/connector/php/connector.php(94): require_once('/Users/yan/Site...') #7 {main} thrown in /Users/yan/Sites/jelix/lib-1.2.5/jelix/core/selector/jSelectorDao.class.php on line 48

Au passage, j'avais essayé en utilisant jAuth::is_connecte() mais là j'avais des erreurs dans les deux cas.

Merci d'avance, Yan


Yannick DEVOS - http://www.nature-mekong.com/

  [Opened] Utilisation de jAuth dans CKFinder

Bonjour,

en fait, il est préférable d'inclure le application.init.php et d'instancier le coordinateur, sans lancer sa méthode process. Tu auras ainsi tout l'environnement pret pour appeler jAuth. Un peu comme dans un point d'entrée.

require ('../application.init.php'); // adapte le chemin bien sûr
$config_file = 'index/config.ini.php';
$jelix = new jCoordinator($config_file);

  [Opened] [Résolu] Utilisation de jAuth dans CKFinder

Bonjour Laurent,

Merci pour la réponse. J'étais pris sur autre chose hier mais je vais essayer de faire comme tel. Ca modifie un peu la structure de mon installation (CKFinder était dans le répertoire librairie de Jelix donc indépendant de l'appli) mais ça me paraît plus sain.

Bien à toi, Yan.


Yannick DEVOS - http://www.nature-mekong.com/

  [Opened] [Résolu] Utilisation de jAuth dans CKFinder

Bonjour à tous,

Avec Jelix 1.6 j'ai du modifier le code. C'est maintenant :

require ('../../../application.init.php');
jApp::loadConfig('gestion/config.ini.php');
jApp::setCoord(new jCoordinator());
session_start();

Puis

function CheckAuthentication()
{
return jAuth::isConnected();
}

Yannick.


Yannick DEVOS - http://www.nature-mekong.com/

  [Opened] Re: Utilisation de jAuth dans CKFinder

Pour ckfinder3 :

require '/PATH/application.init.php';

if( strpos($_SERVER['HTTP_REFERER'], 'admin') !== false){
	jApp::loadConfig('admin/config.ini.php'); // Petite exception pour le cas de l'admin
}else{
	jApp::loadConfig('index/config.ini.php');
}
jApp::setCoord(new jCoordinator());
$config['authentication'] = function () {
	jSession::start();
	return jAuth::isConnected();
};

Cdt Michael

 
Page
  1. Re: Utilisation de jAuth dans CKFinder