Saya memiliki pengguna dengan tampilan dan pengeditan hak untuk jenis konten tertentu. Ini memberikan hak istimewa kepada semua pengguna untuk melihat dan mengedit semua node dari jenis itu. Tapi sebenarnya, saya ingin membuat node unik untuk setiap pengguna, sehingga hanya pengguna yang dapat melihat dan mengeditnya. Bagaimana saya bisa melakukan ini di Drupal 7?
10
Jawaban:
Menggunakan modul yang sudah ada, Anda bisa melakukannya dengan Content Access , yang (ketika digunakan bersama ACL ) memungkinkan untuk mengatur izin untuk mengakses node untuk setiap pengguna.
Ini berarti bahwa Anda perlu mengatur izin akses secara manual untuk setiap node.
Jika Anda secara manual membuat node, dan kemudian Anda ingin memastikan bahwa hanya pengguna yang ditetapkan sebagai pemilik node yang dapat melihat (dan mengedit) itu, maka Anda dapat membuat modul khusus (yang berarti modul yang digunakan untuk situs Anda), dan terapkan
hook_node_access()
sebagai berikut (kode telah ditulis untuk membuatnya lebih mudah dibaca):Menggunakan implementasi pengait ini, Anda tidak perlu mengedit secara manual izin akses yang diberikan untuk setiap node dari jenis konten yang Anda buat. Mengubah pemilik node juga akan lebih mudah, karena Anda tidak perlu mengubah izin akses dari node itu; kode akan secara otomatis memberikan pembaruan dan melihat izin untuk pengguna yang ditetapkan sebagai pemilik (atau penulis) node.
sumber
Anda tidak memerlukan modul khusus atau kode khusus untuk melakukan ini. Cukup buat secara manual simpul-simpul itu, tetapkan pengguna yang sesuai sebagai pemilik (penulis) dari simpul-simpul itu dan tetapkan izin untuk tipe konten ini untuk mengedit konten sendiri saja (tidak mengedit konten apa pun dari jenis ini) dan Anda selesai.
sumber
Apa yang Anda bicarakan adalah kontrol akses simpul Drupal, yang merupakan subjek besar.
Dukungan built-in inti untuk kontrol akses node agak biasa, dan untuk mengontrol akses untuk melihat node berdasarkan peran, Anda harus menggunakan semacam modul kontrol akses node. Ada halaman di Drupal.org yang mencantumkan semua modul akses simpul , dengan masing-masing ulasan kapsul. Saya sarankan Anda melihat halaman itu untuk melihat apakah Anda dapat menemukan modul yang cocok untuk mengontrol akses.
The Flexi Akses Modul tampaknya menjadi modul yang paling cocok dengan kebutuhan Anda, sebagai yang fungsi utama adalah untuk membiarkan Anda mengontrol akses untuk pengguna individu, bukan oleh peran atau dengan istilah taksonomi.
Ini adalah modul kecil yang memungkinkan Anda mengatur ACL (daftar kontrol akses) untuk masing-masing pengguna. Ini pada dasarnya adalah antarmuka pengguna untuk modul ACL , jadi Anda perlu menginstalnya juga.
Ia tidak memiliki beberapa fitur dari modul kontrol akses yang lebih canggih, seperti Content Access , tetapi ia dikelola secara aktif dan saat ini tidak ada bug terbuka dalam antrian masalahnya.
Pengungkapan: Saya adalah pengelola Flexi Access.
sumber