Bagaimana cara membatasi akses simpul berdasarkan peran pengguna? [Tutup]

8

Bagaimana saya bisa membiarkan hanya node tertentu yang ditampilkan berdasarkan peran pengguna?

Pada dasarnya, saya tidak ingin mengizinkan node diakses oleh pengguna dari beberapa peran tertentu.

harshal
sumber
3
Tidak yakin mengapa mereka menutup pertanyaan Anda, itu pertanyaan yang bagus. Dan bagi siapa saja yang mungkin tertarik, saya selalu menyelesaikan masalah jenis ini dengan membuat modul khusus dan mengesampingkan api.drupal.org/api/drupal/modules%21node%21node.api.php/… ... kontrol penuh, tidak ada overhead dalam bentuk modul besar, cara lebih mudah dan lebih dapat diandalkan.
coderama
1
@coderama Agak luas, tanpa OP menunjukkan apa yang mereka coba sejauh ini. Pertanyaan semacam itu mendapatkan jawaban luas yang mungkin tidak akan membantu pengguna di masa depan.
kiamlaluno

Jawaban:

3

Sudahkah Anda mencoba modul akses konten

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.

4life
sumber
1
Jika Anda tidak memerlukan izin berbasis simpul maka modul yang lebih sederhana adalah modul izin tampilan simpul yang mengontrol akses hanya berdasarkan tipe konten dan peran pengguna.
jevon
1
Modul ini adalah beta untuk Drupal 7
Toby Allen
16

Apa yang Anda bicarakan adalah kontrol akses simpul Drupal, yang merupakan subjek besar.

Dukungan bawaan inti untuk kontrol akses node agak kasar, 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 berdasarkan peran.

Ketika bekerja dengan kontrol akses, ada baiknya untuk memahami bagaimana modul kontrol akses Drupal benar-benar bekerja, berikut adalah deskripsi singkatnya:

  1. Pengguna yang diberikan izin untuk mengelola node tidak pernah dibatasi oleh kontrol akses node. Pengguna yang tidak memiliki izin untuk Melihat konten yang diterbitkan tidak pernah dapat diberikan akses oleh modul akses node. Hanya pengguna yang memiliki 'akses konten' dan bukan 'kelola node' yang memenuhi syarat untuk dunia liar kontrol modul akses node.

  2. Kontrol akses node di Drupal adalah sebagai tambahan aturan . Ini berarti bahwa setiap modul yang melakukan kontrol akses sesuai dengan "filosofi Drupal" seharusnya hanya mengizinkan akses, bukan menyangkalnya. Administrator yang ingin memperbaiki akses ke sebuah node harus terlebih dahulu memastikan tidak ada yang memiliki akses, dan kemudian menambahkan hibah akses kepada siapa pun yang akan memiliki akses.

Ini berarti bahwa mungkin agak rumit untuk membatasi akses ke individu dengan modul seperti Akses Konten , karena Anda harus mulai dengan menolak akses semua orang , dan kemudian menambahkannya kembali ke simpul yang tidak Anda inginkan dibatasi. Namun, saya pikir ini adalah pilihan terbaik jika Anda benar-benar perlu melakukannya simpul demi simpul. Resolusi utamanya adalah tipe konten, tetapi memungkinkan Anda untuk menimpanya untuk node tunggal.

Sayangnya, Anda tidak akan dapat menggunakan akses Tolak karena hanya berfungsi pada jenis konten, tanpa menimpa node individu.

NB: Menggunakan lebih dari satu modul akses node tidak dianjurkan.

Perhatikan bahwa jika Anda dapat mengubah persyaratan Anda sehingga Anda dapat menggunakan tipe konten sebagai unit dasar Anda untuk kontrol akses node, maka akses Tolak akan ideal. Misalnya, jika Anda memiliki peran "siswa" dan Anda ingin menolak akses ke node dengan jawaban, maka Anda dapat membuat tipe konten "Jawab" (yang hanya bisa menjadi klon dari "Artikel" default) dan akses Tolak akan hati-hati melindungi semua node dari jenis "Jawaban" agar tidak dilihat oleh peran "siswa".

Radikal bebas
sumber
1
pada dasarnya saya tidak ingin mengizinkan node untuk diakses oleh pengguna dari beberapa peran tertentu apakah ini terlalu sulit untuk diterapkan?
harshal