web-dev-qa-db-fra.com

Quelle est l'URL de connexion de l'utilisateur (Comment masquer le formulaire de connexion?)

Je ne souhaite pas permettre aux visiteurs de s'inscrire sur mon site web; Cependant, j'estime qu'il est nécessaire d'avoir un seul utilisateur enregistré à des fins de test. Par exemple, je publierai un article à accès restreint afin que mon utilisateur de test puisse voir à quoi ressemble l'article sur le site sans "diffuser de linge sale" au grand public (ok, tous les 1/jour qui visitent réellement ...) .

Mon problème pour le moment est que je finis par vider le site car je dois publier/annuler la publication du formulaire de connexion de l'utilisateur. Actuellement, je "contourne" ce problème en cachant le formulaire de connexion dans une sous-catégorie, de sorte qu'il ne soit pas immédiatement visible par un visiteur occasionnel. Est-il possible de créer une autre méthode (une URL personnalisée, par exemple) qui permettra à mon utilisateur de test d'afficher le contenu marqué comme restreint sans modifier les informations qu'un invité disposant d'un accès public verrait?

10
bobthechemist

Vous pouvez créer un menu qui n'est pas publié, y placer un lien vers la page de connexion de l'utilisateur et nommer l'alias comme vous le souhaitez. Tant que vous désactivez la fonction Autoriser les inscriptions dans les options du gestionnaire d'utilisateurs, vous devriez être bon.

Ensuite, donnez simplement l'URL à votre client.

Les étapes sont donc les suivantes:

  1. Créez un nouveau menu, nommez-le Caché
  2. Ne pas publier un module du nouveau menu
  3. Ajouter un nouvel élément de menu, choisissez le formulaire Gestionnaire d'utilisateurs et Login
  4. Intitulez l'élément de menu Connectez-vous ou quelque chose de ce genre pour que vous sachiez ce que c'est, mais changez l'alias en quelque chose que quelqu'un ne devinerait pas.
  5. Testez votre formulaire en allant sur votresite.com/aliasname
8
Brian Peat

Dans le prolongement de la réponse de Brian Peat:

Si vous allez à l'URL

domain.com/index.php?option=com_users&view=login

vous pouvez vous connecter sans avoir un ensemble d’éléments de menu ou tout type de problème de publication/annulation de publication. Cela pourrait être considéré comme un problème dans Joomla, car vous pouvez toujours vous enregistrer/vous connecter si vous connaissez la structure de l'URL. Il existe des règles pour empêcher cela, mais généralement, par défaut, vous pouvez simplement utiliser des chemins directs comme celui-ci pour vous rendre à l'endroit où vous devez aller.

http://www.joomla.org/index.php?option=com_users&view=login

Voici le travail, même le site principal de Joomla qui n’a pas d’accès direct à la connexion peut être consulté.

Ce que je veux dire, c’est que vous utilisiez la bonne liste de contrôle d’accès également, si ses utilisateurs sont "seulement" enregistrés, toute personne connaissant la structure de Joomla peut y accéder.

10
Jordan Ramstad

Pour ce faire, vous devriez pouvoir redéfinir la disposition du formulaire de connexion front-end. Ajoutez du code PHP en haut du fichier de présentation. Ce code ajouté recherche un paramètre personnalisé dans l'URL et une valeur particulière. Si quelqu'un tente d'accéder à la page de connexion via n'importe quelle URL, mais n'inclut pas le paramètre personnalisé ni la valeur particulière (telle que abc = xyz), le code génère alors un "retour;" afin que la présentation du formulaire ne soit pas traitée pour l'affichage.

Avec ce code dans le fichier de disposition substituant, seul un utilisateur connaissant l'URL (qui inclut ce paramètre personnalisé et une valeur acceptable) pourra utiliser ce formulaire de connexion.

Par exemple: L'URL secrète peut être

mydomain.com/?option=com_users&view=login&abc=xyz

Ajoutez ensuite ce code près du haut du fichier de disposition redondant pour le formulaire de connexion:

if(JFactory::getApplication()->input->get('abc')!='xyz'){
    return;
}
4
RCarey

J'ai souvent été confronté à un problème similaire car je souhaitais souvent une connexion frontale afin de modifier les sites Web que je gère, sans avoir besoin d'un formulaire de connexion. J'ai fini par créer un petit bookmarklet que j'ai ajouté à la barre d'outils de mon navigateur. Ceci est évidemment une solution très "locale", car le bookmarklet est uniquement disponible pour moi (ou pour toute personne à qui je copie le code), mais il fonctionne sur TOUT site Joomla et représente un gain de temps incroyable. Cliquez simplement sur le lien et sur le formulaire de connexion. sera affiché (étant donné que vous êtes sur un site Joomla, bien sûr ...).

 javascript:void((function(){var loc = location.href; loc.indexOf("?") == -1 ? (location.href = loc+"?option=com_users&view=login") : (location.href = loc+"&option=com_users&view=login");})());
3
johanpw