Bagaimana cara menggunakan "login pengguna" sebagai argumen akses untuk MENU_CALLBACK?

16

Saya ingin mengharuskan pengguna masuk untuk mengakses MENU_CALLBACK tertentu.

Berikut ini berfungsi, tetapi hanya untuk akun admin. Pengguna reguler masih ditolak aksesnya:

'access arguments' => array('user_is_logged_in')

Harus ada argumen akses yang hanya memeriksa untuk pengguna yang diautentikasi?

jdu
sumber
Jika tidak ada cara untuk melakukan ini, saya akan membuat izin saya sendiri menggunakan hook_permission () dan memberikan izin kepada pengguna yang diautentikasi.
Juli

Jawaban:

29

access argumentsuntuk argumen yang akan diteruskan ke fungsi panggilan balik ... Anda harus menggunakan access callbacksebagai gantinya:

'access callback' => 'user_is_logged_in'

Karena user_is_logged_in()tidak mengambil argumen, Anda dapat dengan aman menghapus access argumentsitem menu Anda.

Kode Anda saat ini hanya berfungsi untuk akun admin karena defaultnya access callbackadalah user_access(), yang memintas pemeriksaan akses untuk pengguna 1.

Clive
sumber
2
Kebalikannya adalah 'access callback' => 'user_is_anonymous'.
leymannx
1
Untuk Drupal 8 di bawah "persyaratan" di file YAML Anda, tambahkan ini: _role: 'authenticated'
coderama