Bonjour,
Pour transmettre les droits utilisateur à mon appli php en iframe, j'avais le code de plugin system suivant:
Ce code à l'inconvénient de persister en cas de déconnexion de l'utilisateur et de connexion d'un nouvel utilisateur lors de la même session.
Je l'ai donc remplacé par un plugin user avec la fonction onUserLogin en gardant le même script à l'intérieur de la fonction.
Le problème est que lors de la connexion d'un nouvel utilisateur, j'obtiens l'erreur suivante:
Comme je ne maîtrise pas le code de Joomla!, je suis incapable de comprendre et d'apporter une correction.
Pour transmettre les droits utilisateur à mon appli php en iframe, j'avais le code de plugin system suivant:
Code PHP:
<?php
define('MY_SUPER', 8); // Super utilisateur
define('MY_EDIT', 11); // Editeur fichier
define('MY_LECT', 10); // Responsable (lecture sauf notes)
define('MY_ENRG', 2); // Enregistré (lecture simplifiée) - nouveau 29/03/2016
defined('_JEXEC') or die;
class plgSystemMyAppliLogin extends JPlugin {
function onAfterInitialise() {
$user = JFactory::getUser();
if(!$user->guest){ // si l'utilisateur est loggé (pas un invité)
$user = JFactory::getUser();
setcookie('MyAppliLoginUserId', $user->id, time() + 3600);
setcookie('MyAppliLoginUserName', $user->name, time() + 3600);
setcookie('MyAppliLoginUserUserName', $user->username, time() + 3600);
setcookie('MyAppliLoginUserEmail', $user->email, time() + 3600);
setcookie('test', serialize($user->getAuthorisedGroups()), time() + 600);
// Niveau d'autorisation z_fic
if (in_array(MY_SUPER, $user->getAuthorisedGroups())) setcookie('MyAppliLoginUserAccess', 4, time() + 3600); // Super utilisateur ou webmestre
elseif (in_array(MY_EDIT, $user->getAuthorisedGroups())) setcookie('MyAppliLoginUserAccess', 3, time() + 3600); // Ecriture fichier
elseif (in_array(MY_LECT, $user->getAuthorisedGroups())) setcookie('MyAppliLoginUserAccess', 2, time() + 3600); // Lecture fichier sauf notes
elseif (in_array(MY_ENRG, $user->getAuthorisedGroups())) setcookie('MyAppliLoginUserAccess', 1, time() + 3600); // Lecture simplifiée (annuaire)
}
}
Je l'ai donc remplacé par un plugin user avec la fonction onUserLogin en gardant le même script à l'intérieur de la fonction.
Le problème est que lors de la connexion d'un nouvel utilisateur, j'obtiens l'erreur suivante:
[31-Mar-2016 22:30:40 Europe/Paris] PHP Fatal error: Cannot re-assign auto-global variable _COOKIE in C:\wamp\www\protestants\j002\plugins\user\myapplil ogin\myapplilogin.php on line 31
[31-Mar-2016 22:30:40 Europe/Paris] PHP Stack trace:
[31-Mar-2016 22:30:40 Europe/Paris] PHP 1. {main}() C:\wamp\www\protestants\j002\index.php:0
[31-Mar-2016 22:30:40 Europe/Paris] PHP 2. JApplicationCms->execute() C:\wamp\www\protestants\j002\index.php:45
[31-Mar-2016 22:30:40 Europe/Paris] PHP 3. JApplicationSite->doExecute() C:\wamp\www\protestants\j002\libraries\cms\applica tion\cms.php:252
[31-Mar-2016 22:30:40 Europe/Paris] PHP 4. JApplicationSite->dispatch() C:\wamp\www\protestants\j002\libraries\cms\applica tion\site.php:230
[31-Mar-2016 22:30:40 Europe/Paris] PHP 5. JComponentHelper::renderComponent() C:\wamp\www\protestants\j002\libraries\cms\applica tion\site.php:191
[31-Mar-2016 22:30:40 Europe/Paris] PHP 6. JComponentHelper::executeComponent() C:\wamp\www\protestants\j002\libraries\cms\compone nt\helper.php:372
[31-Mar-2016 22:30:40 Europe/Paris] PHP 7. require_once() C:\wamp\www\protestants\j002\libraries\cms\compone nt\helper.php:392
[31-Mar-2016 22:30:40 Europe/Paris] PHP 8. JControllerLegacy->execute() C:\wamp\www\protestants\j002\components\com_users\ users.php:15
[31-Mar-2016 22:30:40 Europe/Paris] PHP 9. UsersControllerUser->login() C:\wamp\www\protestants\j002\libraries\legacy\cont roller\legacy.php:728
[31-Mar-2016 22:30:40 Europe/Paris] PHP 10. JApplicationSite->login() C:\wamp\www\protestants\j002\components\com_users\ controllers\user.php:71
[31-Mar-2016 22:30:40 Europe/Paris] PHP 11. JApplicationCms->login() C:\wamp\www\protestants\j002\libraries\cms\applica tion\site.php:694
[31-Mar-2016 22:30:40 Europe/Paris] PHP 12. JPluginHelper::importPlugin() C:\wamp\www\protestants\j002\libraries\cms\applica tion\cms.php:802
[31-Mar-2016 22:30:40 Europe/Paris] PHP 13. JPluginHelper::import() C:\wamp\www\protestants\j002\libraries\cms\plugin\ helper.php:170
[31-Mar-2016 22:30:40 Europe/Paris] PHP Stack trace:
[31-Mar-2016 22:30:40 Europe/Paris] PHP 1. {main}() C:\wamp\www\protestants\j002\index.php:0
[31-Mar-2016 22:30:40 Europe/Paris] PHP 2. JApplicationCms->execute() C:\wamp\www\protestants\j002\index.php:45
[31-Mar-2016 22:30:40 Europe/Paris] PHP 3. JApplicationSite->doExecute() C:\wamp\www\protestants\j002\libraries\cms\applica tion\cms.php:252
[31-Mar-2016 22:30:40 Europe/Paris] PHP 4. JApplicationSite->dispatch() C:\wamp\www\protestants\j002\libraries\cms\applica tion\site.php:230
[31-Mar-2016 22:30:40 Europe/Paris] PHP 5. JComponentHelper::renderComponent() C:\wamp\www\protestants\j002\libraries\cms\applica tion\site.php:191
[31-Mar-2016 22:30:40 Europe/Paris] PHP 6. JComponentHelper::executeComponent() C:\wamp\www\protestants\j002\libraries\cms\compone nt\helper.php:372
[31-Mar-2016 22:30:40 Europe/Paris] PHP 7. require_once() C:\wamp\www\protestants\j002\libraries\cms\compone nt\helper.php:392
[31-Mar-2016 22:30:40 Europe/Paris] PHP 8. JControllerLegacy->execute() C:\wamp\www\protestants\j002\components\com_users\ users.php:15
[31-Mar-2016 22:30:40 Europe/Paris] PHP 9. UsersControllerUser->login() C:\wamp\www\protestants\j002\libraries\legacy\cont roller\legacy.php:728
[31-Mar-2016 22:30:40 Europe/Paris] PHP 10. JApplicationSite->login() C:\wamp\www\protestants\j002\components\com_users\ controllers\user.php:71
[31-Mar-2016 22:30:40 Europe/Paris] PHP 11. JApplicationCms->login() C:\wamp\www\protestants\j002\libraries\cms\applica tion\site.php:694
[31-Mar-2016 22:30:40 Europe/Paris] PHP 12. JPluginHelper::importPlugin() C:\wamp\www\protestants\j002\libraries\cms\applica tion\cms.php:802
[31-Mar-2016 22:30:40 Europe/Paris] PHP 13. JPluginHelper::import() C:\wamp\www\protestants\j002\libraries\cms\plugin\ helper.php:170
Commentaire