Bonjour à tous,
Dans mon application Joomla!, j'ai une application en pur php en iframe qui utilise les groupes et les droits d'accès Joomla!.
J'ai créé un petit plugin qui récupère les données utilisateurs et j'ai testé deux solutions qui fonctionnent mais je me demande laquelle est la plus sûre et de meilleure pratique.
Solution n°1
Je transmets uniquement l'id utilisateurs et je fais une requête dans la table j000_user_usergroup_map de la base de données pour connaître ses groupes d'appartenance et j'en déduis les droits d'accès.
Solution n°2
Mon plugin calcule et transmets un code de droits d’accès.
Voici mon plugin avec les deux variantes:
Dans mon application Joomla!, j'ai une application en pur php en iframe qui utilise les groupes et les droits d'accès Joomla!.
J'ai créé un petit plugin qui récupère les données utilisateurs et j'ai testé deux solutions qui fonctionnent mais je me demande laquelle est la plus sûre et de meilleure pratique.
Solution n°1
Je transmets uniquement l'id utilisateurs et je fais une requête dans la table j000_user_usergroup_map de la base de données pour connaître ses groupes d'appartenance et j'en déduis les droits d'accès.
Solution n°2
Mon plugin calcule et transmets un code de droits d’accès.
Voici mon plugin avec les deux variantes:
Code HTML:
<?php
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();
// Solution 1
setcookie('MyAppliLoginUserName', $user->username, time() + 3600);
setcookie('MyAppliLoginRealName', $user->name, time() + 3600);
setcookie('MyAppliLoginUserId', $user->id, time() + 3600);
// Solution 2
if (in_array(6, $user->getAuthorisedGroups())) setcookie('MyAppliLoginUserAccess', 1, time() + 3600); // Lecture fichier
elseif (in_array(10, $user->getAuthorisedGroups())) setcookie('MyAppliLoginUserAccess', 2, time() + 3600); // Ecriture fichier
elseif (in_array(8, $user->getAuthorisedGroups())) setcookie('MyAppliLoginUserAccess', 3, time() + 3600); // Super utilisateur ou webmestre
}
}
}
Commentaire