Bagaimana membatasi akses langsung ke URL titik yang ditampilkan di galeri video yang dibuat dengan Tampilan?
10
Saya telah membuat galeri video menggunakan Views . Tapi saya hanya ingin halaman itu dapat diakses oleh publik dan mencegah akses ke masing-masing video secara individual.
Video harus dibuat sebagai jenis konten, sehingga semuanya memiliki ULR yang dapat diakses seperti /content/video-1, dll.
Coba modul akses konten dan cegah akses ke videokonten secara individual (atau Anda juga dapat mengatur aksesnya sesuai keinginan Anda roles)
Modul ini memungkinkan Anda untuk mengelola izin untuk jenis konten berdasarkan peran dan penulis. Ini memungkinkan Anda menentukan tampilan khusus, mengedit, dan menghapus izin untuk setiap jenis konten. Secara opsional, Anda dapat mengaktifkan per pengaturan akses konten, sehingga Anda dapat menyesuaikan akses untuk setiap node konten.
Anda juga dapat menggunakan modul Izin Node View , tapi saya sarankan gunakan Content access module.
(jika Anda ingin bekerja dengan drupal untuk masa depan lebih baik terlibat dengan modul yang bermanfaat ini)
Hampir apa yang saya butuhkan. Akhirnya saya memang mengontrol akses melalui level rendah, karena ingin mengalihkan ke halaman rumah dalam beberapa kasus, 404 dalam kasus lain, dll, jadi saya memiliki kontrol yang lebih baik, tetapi saya pikir modul ini dapat bekerja di sebagian besar kasus. Mungkin dengan penyesuaian yang lebih baik dalam kasus saya, tetapi tidak punya waktu untuk menyelidiki.
Modul izin tampilan simpul memungkinkan izin "Lihat konten sendiri" dan "Lihat konten apa saja" untuk setiap jenis konten pada halaman izin seperti pada Drupal 6.
Sekarang buka halaman izin dan hapus Lihat izin konten apa pun dari jenis konten video untuk pengguna Anonim .
Jika Anda ingin hanya sedikit video dari Galeri video yang dapat diakses oleh pengguna anonim, maka instal modul Tolak Akses .
Saya pikir modul Rabbit Hole melakukan apa yang Anda cari. Berikut adalah kutipan dari halaman deskripsi modul yang menjawab kebutuhan Anda. Semoga berhasil.
Rabbit Hole adalah modul yang menambahkan kemampuan untuk mengendalikan apa yang harus terjadi ketika suatu entitas dilihat pada halamannya sendiri.
Mungkin Anda memiliki tipe konten yang tidak boleh ditampilkan di halamannya sendiri, seperti tipe konten gambar yang ditampilkan di carousel. Rabbit Hole dapat mencegah agar simpul ini tidak dapat diakses di halamannya sendiri, melalui simpul / xxx.
Gunakan modul lubang kelinci , fungsinya persis sama. Semua konten dapat diakses melalui tampilan / kode tetapi ketika Anda mencoba untuk mengakses halaman detail "konten / ***" itu adalah akses ditolak atau Anda dapat mengatur pengalihan.
Saya akan mencobanya, terima kasih. Untuk saat ini, saya telah menyelesaikannya pada level rendah, tetapi yang terbaik adalah mengetahui modul kustom yang sudah dilakukan.
Cesar
0
1) Buat bidang nilai Boolean di jenis konten Anda.
2) Jika nilai dipilih sebagai benar, kelas unik harus ditambahkan ke bidang video itu, jika nilai dipilih sebagai false, kelas tidak boleh ditambahkan ke bidang video itu.
3) Tulis beberapa CSS untuk menyembunyikan video di mana kelas tidak ada.
Menggunakan modul Aturan Anda dapat menerapkan aturan yang terlihat mirip dengan ini:
{"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"}}]}}
Siapa pun yang mencoba mengakses jalur relatif content/video-1akan diarahkan ke halaman dengan jalur no_access, dan pesan kesalahan terkait akan ditampilkan (sesuaikan jalur ini agar sesuai dengan konvensi Anda sendiri, dan tinjau pesan yang akan ditampilkan).
Aturan di atas hanya membatasi akses ke jalur relatif content/video-1(seperti dalam pertanyaan Anda). Jika Anda ingin memperluas aturan ke URL serupa, ubah content\/video-1ke sesuatu seperti content\/video-\\d+$, atau variasi apa pun yang cocok dengan konvensi penamaan jalur Anda.
Aturan di atas tidak (belum) memperhitungkan untuk hanya menerapkan Tindakan Aturan untuk pengguna dengan peran yang dipilih saja. Tetapi bagi siapa pun yang sedikit terbiasa dengan modul Aturan, itu adalah "Syarat" untuk menambahkan ... misalnya: lewati tindakan aturan untuk pengguna dengan peran seperti editor, administrator, dll. Yang dapat Anda lakukan dengan menambahkan Aturan Kondisi seperti "pengguna TIDAK memiliki administrator peran (dan / atau editor)". Dengan begitu, pengguna khusus semacam itu tetap dapat melihat simpul tersebut (tanpa syarat tambahan mereka juga tidak dapat melihat simpul seperti itu lagi ...).
Untuk bereksperimen dengan aturan ini di situs Anda sendiri, cukup salin seluruh kode Aturan di atas, dan rekatkan dalam Aturan baru di situs Anda sendiri, dibuat melalui fungsi "Impor" (tersedia jika UI Aturan diaktifkan). Kemudian edit / sempurnakan lebih lanjut agar sesuai dengan lingkungan Anda sendiri (mis. Pesan "Maaf, ..." yang akan ditampilkan).
Perbaikan tambahan
Di salah satu jawaban lain Anda menambahkan komentar yang mencakup ini:
... Saya ingin mengalihkan ke halaman utama dalam beberapa kasus, 404 dalam kasus lain, dll, jadi saya memiliki kontrol yang lebih baik ...
Jika itu yang juga ingin Anda lakukan, maka Anda dapat memperbaiki Tindakan Aturan di atas dengan menambahkan modul Aturan Bersyarat juga. Dengan itu, untuk setiap "beberapa kasus" Anda, Anda dapat menentukan URL yang sesuai untuk dialihkan. Lihat jawaban saya untuk " Bagaimana cara menetapkan nilai beberapa bidang tergantung pada nilai kotak daftar? " Untuk ilustrasi tentang bagaimana menggunakan modul ini dalam Tindakan Tindakan.
Pasang modul Izin Node View .
Sekarang buka halaman izin dan hapus Lihat izin konten apa pun dari jenis konten video untuk pengguna Anonim .
Jika Anda ingin hanya sedikit video dari Galeri video yang dapat diakses oleh pengguna anonim, maka instal modul Tolak Akses .
sumber
Perbarui jenis konten Anda.
Tambahkan bidang angka seperti display_order dll.
Tetapkan nilai bidang ini hanya untuk video yang ingin Anda tampilkan.
Buka pengaturan tampilan Anda dan atur;
Gunakan pager: Menampilkan sejumlah item tertentu | x item
di mana x adalah no.of video yang ingin Anda tampilkan
Kemudian menerapkan pengurutan berdasarkan pesanan tampilan
Semoga ini akan berhasil.
sumber
Saya pikir modul Rabbit Hole melakukan apa yang Anda cari. Berikut adalah kutipan dari halaman deskripsi modul yang menjawab kebutuhan Anda. Semoga berhasil.
sumber
Gunakan modul lubang kelinci , fungsinya persis sama. Semua konten dapat diakses melalui tampilan / kode tetapi ketika Anda mencoba untuk mengakses halaman detail "konten / ***" itu adalah akses ditolak atau Anda dapat mengatur pengalihan.
sumber
1) Buat bidang nilai Boolean di jenis konten Anda.
2) Jika nilai dipilih sebagai benar, kelas unik harus ditambahkan ke bidang video itu, jika nilai dipilih sebagai false, kelas tidak boleh ditambahkan ke bidang video itu.
3) Tulis beberapa CSS untuk menyembunyikan video di mana kelas tidak ada.
sumber
Menggunakan modul Aturan Anda dapat menerapkan aturan yang terlihat mirip dengan ini:
Siapa pun yang mencoba mengakses jalur relatif
content/video-1
akan diarahkan ke halaman dengan jalurno_access
, dan pesan kesalahan terkait akan ditampilkan (sesuaikan jalur ini agar sesuai dengan konvensi Anda sendiri, dan tinjau pesan yang akan ditampilkan).Aturan di atas hanya membatasi akses ke jalur relatif
content/video-1
(seperti dalam pertanyaan Anda). Jika Anda ingin memperluas aturan ke URL serupa, ubahcontent\/video-1
ke sesuatu seperticontent\/video-\\d+$
, atau variasi apa pun yang cocok dengan konvensi penamaan jalur Anda.Aturan di atas tidak (belum) memperhitungkan untuk hanya menerapkan Tindakan Aturan untuk pengguna dengan peran yang dipilih saja. Tetapi bagi siapa pun yang sedikit terbiasa dengan modul Aturan, itu adalah "Syarat" untuk menambahkan ... misalnya: lewati tindakan aturan untuk pengguna dengan peran seperti editor, administrator, dll. Yang dapat Anda lakukan dengan menambahkan Aturan Kondisi seperti "pengguna TIDAK memiliki administrator peran (dan / atau editor)". Dengan begitu, pengguna khusus semacam itu tetap dapat melihat simpul tersebut (tanpa syarat tambahan mereka juga tidak dapat melihat simpul seperti itu lagi ...).
Untuk bereksperimen dengan aturan ini di situs Anda sendiri, cukup salin seluruh kode Aturan di atas, dan rekatkan dalam Aturan baru di situs Anda sendiri, dibuat melalui fungsi "Impor" (tersedia jika UI Aturan diaktifkan). Kemudian edit / sempurnakan lebih lanjut agar sesuai dengan lingkungan Anda sendiri (mis. Pesan "Maaf, ..." yang akan ditampilkan).
Perbaikan tambahan
Di salah satu jawaban lain Anda menambahkan komentar yang mencakup ini:
Jika itu yang juga ingin Anda lakukan, maka Anda dapat memperbaiki Tindakan Aturan di atas dengan menambahkan modul Aturan Bersyarat juga. Dengan itu, untuk setiap "beberapa kasus" Anda, Anda dapat menentukan URL yang sesuai untuk dialihkan. Lihat jawaban saya untuk " Bagaimana cara menetapkan nilai beberapa bidang tergantung pada nilai kotak daftar? " Untuk ilustrasi tentang bagaimana menggunakan modul ini dalam Tindakan Tindakan.
sumber