Jadikan halaman tertentu hanya tersedia untuk pengguna yang masuk

9

Saya butuh bantuan dan ini masalahnya:

Saya membangun situs menggunakan Drupal 7.

Saya perlu membuat halaman tertentu hanya terlihat oleh pengguna yang masuk (masing-masing memiliki nama pengguna / kata sandi), pengguna lain harus diarahkan atau ditampilkan pesan kesalahan. Apakah fungsi ini mungkin termasuk dalam Drupal 7 itu sendiri atau apakah ada modul yang melakukan ini (sesuatu yang lebih sederhana daripada Grup Organik)?

dchello4
sumber

Jawaban:

7

Anda perlu menggunakan modul Akses Konten untuk izin tampilan simpul berbutir halus.

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.

Anil Sagar
sumber
Modul itu belum diperbarui sejak 2013, dan digambarkan sebagai "belum dianggap stabil". Mau merekomendasikan yang saat ini dirawat?
Blazemonger
1

Jika Anda ingin melakukannya secara terprogram dalam modul atau simpul (dengan Filter Input PHP), Anda dapat menggunakan user_is_logged_in () untuk sesuatu seperti ini:

<?php
if (!user_is_logged_in()) drupal_not_found();
?>
Sean3z
sumber
0

Meskipun modul Akses Konten menyelesaikan masalah dengan baik, ini merupakan modul tambahan dan belum stabil pada D7.

Alternatif hanya menggunakan modul yang umum digunakan adalah:

  1. Buat node tetapi tetapkan sebagai tidak dipublikasikan

  2. Buat tampilan simpul, misalnya "konten yang dibatasi peran". Tampilkan konten simpul lengkap untuk mereplikasi tampilan simpul /% standar.

  3. Batasi tampilan untuk peran yang Anda inginkan (mis. "Peran | Pengguna terotentikasi")

  4. Tetapkan jalur tampilan ke sesuatu seperti:

    restricted-content/%
  5. Tetapkan filter kontekstual oleh Nid.

  6. Hapus filter "konten yang dipublikasikan" default.

Sekarang Anda akan memiliki tampilan yang berfungsi seperti simpul /%, kecuali itu juga menangani konten yang tidak dipublikasikan dan dibatasi oleh peran.

Tim Raasveld
sumber
1
Tampilan akan menampilkan daftar node bahkan jika mereka tidak dipublikasikan, tetapi pengguna tanpa izin yang tepat masih tidak dapat mengakses node.
kiamlaluno
-1

Ada solusi program yang cukup sederhana, Anda dapat membaca peran pengguna (dan juga jika itu anonim atau terdaftar) seperti ini:

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

Anda akan mendapatkan array dengan peran pengguna saat ini di $ peran.

Anda dapat mengarahkan ulang pengguna itu tergantung pada peran dengan menggunakan beberapa logika

drupal_goto ('url-of-the/page');
NenadP
sumber