Rendi alcune pagine disponibili solo agli utenti che hanno effettuato l'accesso


9

Ho bisogno di aiuto ed ecco il problema:

Sto costruendo un sito usando Drupal 7.

Devo rendere determinate pagine visibili solo agli utenti che hanno effettuato l'accesso (ognuno con il proprio nome utente / password), gli altri utenti devono semplicemente essere reindirizzati o mostrare un messaggio di errore. Questa funzionalità è forse inclusa nello stesso Drupal 7 o esiste un modulo che lo fa (qualcosa di più semplice dei gruppi organici)?

Risposte:


7

È necessario utilizzare il modulo di accesso al contenuto per autorizzazioni di visualizzazione dei nodi a grana fine.

Questo modulo consente di gestire le autorizzazioni per i tipi di contenuto per ruolo e autore. Ti consente di specificare la visualizzazione personalizzata, modificare ed eliminare le autorizzazioni per ciascun tipo di contenuto. Facoltativamente, è possibile abilitare le impostazioni di accesso al contenuto, in modo da poter personalizzare l'accesso per ciascun nodo del contenuto.


Tale modulo non è stato aggiornato dal 2013 ed è descritto come "non ancora considerato stabile". Vuoi consigliarne uno che è attualmente mantenuto?
Blazemonger,

1

Se stai cercando di farlo a livello di codice all'interno di un modulo o nodo (con il filtro di input PHP), potresti usare user_is_logged_in () per qualcosa del genere:

<?php
if (!user_is_logged_in()) drupal_not_found();
?>

0

Sebbene il modulo Content Access risolva bene il problema, è un modulo aggiuntivo e non è ancora stabile su D7.

Un'alternativa che utilizza solo moduli comunemente usati è:

  1. Crea i nodi ma impostali come non pubblicati

  2. Creare una vista nodo, ad esempio "contenuto con ruoli limitati". Mostra il contenuto del nodo completo per replicare la visualizzazione del nodo /% standard.

  3. Limitare la vista ai ruoli desiderati (ad es. "Ruolo | Utente autenticato")

  4. Imposta il percorso di visualizzazione su qualcosa del tipo:

    restricted-content/%
  5. Imposta un filtro contestuale per Nid.

  6. Rimuovi il filtro "contenuto pubblicato" predefinito.

Ora avrai una vista che funziona proprio come il nodo /%, tranne che gestisce anche contenuti non pubblicati e restrizioni per ruolo.


1
La vista mostrerebbe l'elenco dei nodi anche se non sono pubblicati, ma gli utenti senza l'autorizzazione giusta non possono ancora accedere ai nodi.
kiamlaluno

-1

Esiste una soluzione programmatica piuttosto semplice, puoi leggere il ruolo dell'utente (e anche se è anonimo o registrato) in questo modo:

$roles=$GLOBALS['user']->roles;

otterrai una matrice con ruoli dell'utente corrente in $ ruoli.

È possibile reindirizzare l'utente a seconda del ruolo con un po 'di logica utilizzando

drupal_goto ('url-of-the/page');
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.