web-dev-qa-db-fra.com

Composant personnalisé - Nécessité de vérifier si l'utilisateur est connecté

Je développe un nouveau composant Joomla personnalisé MVC (com_helpdesk) et je dois vérifier si l'utilisateur est connecté au site. Sinon, il devrait être redirigé vers la page de connexion avec le paramètre "return". Est-ce que quelqu'un pourrait m'aider avec ça?

5
Sahil Purav

Vous pouvez utiliser l'objet utilisateur de Joomla pour cela.

$user = JFactory::getUser();        // Get the user object
$app  = JFactory::getApplication(); // Get the application

if ($user->id != 0)
{
    // you are logged in
}
else 
{
    // Redirect the user
    $app->redirect(JRoute::_('index.php?option=com_users&view=login'));
}

Si vous souhaitez afficher un message lorsqu'ils sont redirigés, vous pouvez utiliser les éléments suivants:

$msg = 'You must be logged in to view this content';
$app->redirect(JRoute::_('index.php?option=com_users&view=login'), $msg);
10
Lodder

Althugh Lodder a répondu à mes questions. Voici ce que j’ai fait et qui me semble plus sophistiqué pour traiter les composants personnalisés. Il ajoute un paramètre de retour au composant com_users.

Dans le contrôleur principal, (components/com_mycomponent/controller.php)

Je remplace la méthode suivante:

public function display($cachable = false, $urlparams = array()) {

        $user = JFactory::getUser();

        if ($user->get('guest') == 1) {
            $this->setRedirect(JRoute::_('index.php?option=com_users&view=login&return=' . base64_encode(JUri::current()), "You must be logged in to view this content"));
            return;
        }

        parent::display($cachable, $urlparams);
    }
2
Sahil Purav