it-swarm.dev

Qual è l'URL per l'accesso dell'utente (aka Come nascondere il modulo di accesso?)

Non desidero consentire ai visitatori di registrarsi sul mio sito Web; tuttavia, trovo la necessità di avere un singolo utente registrato a scopo di test. Ad esempio, pubblicherò un articolo con accesso limitato in modo che il mio utente di prova possa vedere come appare l'articolo sul sito senza "mandare in onda la biancheria sporca" al pubblico (ok, tutto 1/giorno che effettivamente visita ...) .

Il mio problema al momento è che finisco per sfigurare il sito Web poiché devo pubblicare/annullare la pubblicazione del modulo di accesso dell'utente. Attualmente, "aggiro" questo problema nascondendo il modulo di accesso in una sottocategoria in modo che non sia immediatamente visibile a un visitatore occasionale. È possibile creare un metodo alternativo (ad esempio un URL personalizzato) che consenta al mio utente di prova di visualizzare i contenuti contrassegnati come limitati senza alterare ciò che un ospite con accesso pubblico vedrebbe?

10
bobthechemist

Puoi creare un menu che non è stato pubblicato e inserire un link alla pagina di accesso dell'utente e nominare l'alias come preferisci. Fintanto che disattivi la funzione Consenti registrazioni nelle opzioni di gestione utenti, dovresti essere bravo.

Quindi dai al tuo cliente l'URL.

Quindi i passaggi sono:

  1. Crea un nuovo menu, chiamalo Nascosto
  2. Non pubblicare un modulo del nuovo menu
  3. Aggiungi una nuova voce di menu, seleziona Gestione utenti e modulo di accesso
  4. Dai un titolo alla voce di menu Accedi o qualcosa del genere in modo da sapere di cosa si tratta, ma cambia l'alias in qualcosa che qualcuno non indovinerebbe.
  5. Prova il tuo modulo andando su yoursite.com/aliasname
8
Brian Peat

Come estensione alla risposta di Brian Peat:

Se vai all'URL

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

puoi accedere senza avere una voce di menu impostata o qualsiasi tipo di problema di pubblicazione/non pubblicazione. Questo potrebbe essere definito come un po 'un problema in Joomla in quanto conoscendo il tuo modo di aggirare puoi ancora registrarti/accedere se conosci la struttura dell'URL. Ci sono regole per impedirlo, ma in genere per impostazione predefinita puoi semplicemente usare percorsi diretti come quello per arrivare dove devi andare.

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

Eccolo al lavoro, anche il sito principale di Joomla, che non ha accesso diretto al login, è accessibile in questo modo.

Il mio punto è, assicurati di usare anche l'ACL corretto, se i suoi "solo" utenti registrati possono entrare tutti quelli che conoscono la struttura di Joomla. Inoltre, come aveva detto Brian, assicurati che le registrazioni siano disattivate.

10
Jordan Ramstad

Dovresti riuscire a farlo eseguendo l'override del layout per il modulo di accesso front-end. Aggiungi un po 'PHP nella parte superiore del file di layout. Questo codice aggiunto controlla un parametro personalizzato nell'URL e un valore particolare. Se qualcuno tenta di accedere alla pagina di accesso tramite qualsiasi URL ma non include il parametro personalizzato e il valore particolare (come abc = xyz), quindi il codice genera un "return;" in modo che il layout del modulo non venga elaborato per la visualizzazione.

Con questo codice nel file di layout di sostituzione, solo un utente che conosce l'URL (che include questo parametro personalizzato e un valore accettabile) potrà utilizzare quel modulo di accesso.

Ad esempio: L'URL segreto può essere

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

Quindi aggiungere questo codice nella parte superiore del file di layout di sostituzione per il modulo di accesso:

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

Spesso ho riscontrato un problema simile perché desidero spesso un accesso front-end per modificare i siti Web che gestisco, senza la necessità di disporre di un modulo di accesso. Ho finito per creare un piccolo bookmarklet che ho aggiunto alla barra degli strumenti del browser. Questa è ovviamente una soluzione molto "locale", poiché solo il bookmarklet è disponibile per me (o per chiunque copio il codice), ma funziona su QUALSIASI sito Joomla ed è un incredibile risparmio di tempo, è sufficiente fare clic sul collegamento e sul modulo di accesso verrà mostrato (dato che sei su un sito Joomla, ovviamente ...).

 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