Come limitare l'accesso diretto agli URL dei nodi mostrati in una galleria video creata con Views?


10

Ho realizzato una galleria video usando Views . Ma voglio solo che la pagina sia accessibile al pubblico e impedire l'accesso a ciascuno dei video singolarmente.

I video dovevano essere creati come un tipo di contenuto, quindi tutti hanno ULR accessibili come /content/video-1, ecc.

Risposte:


5

Prova il modulo di accesso ai videocontenuti e impedisci l'accesso ai contenuti individualmente (oppure puoi anche impostarne l'accesso a tuo piacimento roles)

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 ogni tipo di contenuto. Facoltativamente, è possibile abilitare le impostazioni di accesso al contenuto, in modo da poter personalizzare l'accesso per ciascun nodo del contenuto.

Inoltre puoi usare il modulo Node View Permissions , ma ti suggerisco di usare Content access module.

(se vuoi lavorare con Drupal per il futuro è meglio coinvolgerti con questi utili moduli)


Quasi quello di cui avevo bisogno. Alla fine ho controllato l'accesso a basso livello, perché volevo reindirizzare alla home page in alcuni casi, 404 in altri, ecc., Quindi avevo un controllo migliore, ma penso che questo modulo potrebbe funzionare nella maggior parte dei casi. Forse con una migliore regolazione nel mio caso, ma non ho avuto il tempo di indagare.
Cesar,

3

Installa il modulo Node View Permissions .

Il modulo di autorizzazioni di visualizzazione nodo abilita le autorizzazioni "Visualizza il proprio contenuto" e "Visualizza qualsiasi contenuto" per ciascun tipo di contenuto nella pagina delle autorizzazioni come in Drupal 6.

Ora vai alla pagina delle autorizzazioni e rimuovi Visualizza qualsiasi autorizzazione di contenuto dal tipo di contenuto video per Utente anonimo .

Nel caso in cui desideri che solo pochi dei video della Galleria video siano accessibili all'utente anonimo, installa il modulo Nega accesso .


1

Aggiorna il tuo tipo di contenuto.

  1. Aggiungi un campo numerico come display_order ecc.

  2. Imposta il valore di questo campo solo per quei video che vuoi mostrare.

  3. Vai alle impostazioni di visualizzazione e imposta;

    Usa cercapersone: visualizza un numero specificato di elementi | x articoli

    dove x è il numero di video che vuoi mostrare

  4. Quindi applicare l'ordinamento per ordine di visualizzazione

Spero che funzioni.


1

Penso che il modulo Rabbit Hole faccia esattamente quello che stai cercando. Ecco un estratto dalla pagina di descrizione del modulo che risponde alle tue necessità. In bocca al lupo.

Rabbit Hole è un modulo che aggiunge la possibilità di controllare cosa dovrebbe accadere quando un'entità viene visualizzata sulla propria pagina.

Forse hai un tipo di contenuto che non dovrebbe mai essere visualizzato sulla propria pagina, come un tipo di contenuto di immagine che viene visualizzato in un carosello. Rabbit Hole può impedire a questo nodo di essere accessibile sulla propria pagina, tramite node / xxx.


1

Scegli il modulo per la tana del coniglio , fa esattamente lo stesso. Tutto il contenuto è accessibile tramite viste / codice ma quando si tenta di accedere alla pagina di dettaglio "contenuto / ***" viene negato l'accesso oppure è possibile impostare un reindirizzamento.


Lo darò un passaggio, grazie. Per il momento, l'ho risolto a basso livello, ma è meglio sapere moduli personalizzati già realizzati.
Cesar,

0

1) Crea un campo valore booleano nel tuo tipo di contenuto.

2) Se il valore è selezionato come vero, una classe unica dovrebbe essere aggiunta a quel campo video, se il valore è selezionato come falso, la classe non dovrebbe essere aggiunta a quel campo video.

3) Scrivi alcuni CSS per nascondere i video in cui la classe non è presente.


0

Utilizzando il modulo Regole è possibile implementare una regola simile a questa:

{ "rules_disallow_accesss_to_selected_urls" : {
    "LABEL" : "Disallow access to selected URLs",
    "PLUGIN" : "reaction rule",
    "OWNER" : "rules",
    "REQUIRES" : [ "rules" ],
    "ON" : { "init" : [] },
    "IF" : [
      { "text_matches" : {
          "text" : [ "site:current-page:url" ],
          "match" : "content\/video-1",
          "operation" : "regex"
        }
      }
    ],
    "DO" : [
      { "drupal_message" : {
          "message" : "Sorry, access to URLs like [site:current-page:url] is not allowed ...",
          "type" : "error"
        }
      },
      { "redirect" : { "url" : "no_access" } }
    ]
  }
}

Chiunque provi ad accedere al percorso relativo content/video-1verrà reindirizzato a una pagina con percorso no_accesse verrà mostrato un messaggio di errore correlato (adattare questo percorso per adattarlo alle proprie convenzioni e rivedere il messaggio da mostrare).

La regola sopra limita l'accesso al percorso relativo content/video-1(come nella tua domanda). Se desideri espandere la regola in URL simili, content\/video-1passa a qualcosa di simile content\/video-\\d+$o a qualsiasi variante che si adatti alla convenzione di denominazione dei tuoi percorsi.

La regola di cui sopra non tiene (ancora) in considerazione l'applicazione delle Regole Azione solo agli utenti con ruoli selezionati. Ma per chiunque abbia un po 'di familiarità con il modulo Regole, questa è una semplice "Condizione" da aggiungere ... ad esempio: saltare l'azione delle regole per gli utenti con un ruolo come editor, amministratore, ecc. Che puoi fare aggiungendo una Regole Condizione come "l'utente NON ha un amministratore di ruolo (e / o un editor)". In questo modo quei tipi di utenti speciali possono comunque visualizzare tali nodi (senza tale condizione aggiuntiva non possono più visualizzare tali nodi ...).

Per sperimentare questa regola nel tuo sito, copia l'intero codice Regole sopra e incollalo in una nuova Regola nel tuo sito, creata tramite la funzione "Importa" (disponibile se l'interfaccia utente delle regole è abilitata). Quindi modifica / perfeziona ulteriormente per adattarlo al tuo ambiente (ad esempio il messaggio "Siamo spiacenti, ..." da mostrare).

Affinamento aggiuntivo

In una delle altre risposte hai aggiunto un commento che include questo:

... volevo reindirizzare alla home page in alcuni casi, 404 in altri, ecc., Quindi avevo un controllo migliore ...

Se è quello che vuoi anche fare, puoi perfezionare ulteriormente l'azione delle regole sopra aggiungendo anche il modulo Regole condizionali . Detto questo, per ciascuno dei tuoi "alcuni casi" puoi quindi specificare l'URL appropriato a cui reindirizzare. Fare riferimento alla mia risposta a " Come impostare i valori di alcuni campi in base al valore di una casella di riepilogo? " Per un'illustrazione di come utilizzare questo modulo all'interno di un'azione Regole.

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.