Bagaimana cara menambahkan formulir login ke halaman Akses Ditolak?

7

Saya mencoba menambahkan formulir masuk ke halaman akses ditolak, dan bertanya-tanya apakah ini mungkin melalui UI.

Ada saran / ide?

jelly46
sumber
1
Tempatkan Blok Login pada callback 404 halaman & Gunakan modul ini drupal.org/project/blocks404 atau gunakan modul ini jika menggunakan Drupal 7 drupal.org/project/navigation404
Rupesh
Itu untuk kesalahan "halaman tidak ditemukan", bukan "akses ditolak".
kiamlaluno

Jawaban:

4

Solusi lain di sini adalah modul LoginToboggan . Ini menyediakan sejumlah peningkatan berbeda untuk fungsi login.

Modul logintoboggan menawarkan beberapa modifikasi sistem login drupal dalam modul eksternal dengan menawarkan fitur berikut dan peningkatan kegunaan:

  1. memungkinkan pengguna untuk masuk menggunakan nama pengguna atau alamat email mereka.
  2. memungkinkan pengguna untuk masuk dengan segera.
  3. memberikan formulir masuk pada halaman yang ditolak aksesnya untuk pengguna yang tidak masuk (anonim).
  4. modul ini menyediakan dua opsi blok masuk: satu menggunakan javascript untuk menampilkan formulir di dalam blok segera setelah mengklik "masuk". yang lain membawa pengguna ke halaman terpisah, tetapi mengembalikan pengguna ke halaman aslinya saat login.
  5. sesuaikan formulir pendaftaran dengan dua bidang email untuk memastikan keakuratan.
  6. secara opsional mengarahkan pengguna ke halaman tertentu ketika menggunakan fitur 'login langsung'.
  7. secara opsional mengarahkan pengguna ke halaman tertentu setelah validasi alamat email mereka.
  8. opsional menampilkan pesan pengguna yang menunjukkan login berhasil.
  9. secara opsional menggabungkan formulir login dan pendaftaran pada satu halaman.
  10. secara opsional ada pengguna yang tidak divalidasi dibersihkan dari sistem pada interval yang ditentukan sebelumnya (silakan baca bagian peringatan dari install.txt untuk informasi penting tentang konfigurasi fitur ini!).
  11. terintegrasi dengan modul aturan untuk melakukan berbagai tugas ketika pengguna memvalidasi melalui proses validasi email (lihat http://drupal.org/node/880904 untuk contoh)

Formulir konfigurasi pengaturan memiliki opsi yang disebut formulir login Sekarang pada akses ditolak (403) yang mengaktifkan / menonaktifkan fungsi yang tepat ini.

Shawn Conn
sumber
Modul LoginToboggan bekerja seperti mantra harus menyertakan halaman 403 tapi itu super, terima kasih.
jelly46
10

Opsi 1: Gunakan modul CustomError

The CustomError modul memungkinkan admin situs untuk membuat halaman kesalahan kustom untuk kode status HTTP 403 (akses ditolak) dan 404 (tidak ditemukan), tanpa perlu membuat node untuk masing-masing. Beberapa detail lebih lanjut tentang fitur-fiturnya (dari halaman proyeknya):

  • Judul dan deskripsi halaman yang dapat dikonfigurasi.
  • Tidak ada header penulis dan tanggal / waktu seperti dengan node normal.
  • Teks berformat HTML apa pun dapat diletakkan di badan laman.
  • Halaman-halaman kesalahan bisa bertema.
  • Pengguna yang tidak masuk dan mencoba mengakses area yang memerlukan login akan diarahkan ke halaman yang mereka coba akses setelah mereka login.
  • Mengizinkan pengalihan khusus untuk 404s.

Anda harus tertarik pada bagian tentang " Pengguna yang tidak masuk dan mencoba mengakses area yang memerlukan login akan diarahkan ke halaman yang mereka coba akses setelah mereka login. ".

Opsi 2: Redirect ke pengguna / masuk menggunakan modul Aturan

"Menambahkan pengaturan untuk halaman 'akses ditolak' dan menampilkan blok 'Login pengguna' pada halaman itu" memang merupakan solusi yang seharusnya bekerja. Namun, Anda dapat mengambil ini sedikit lebih jauh, dan meningkatkan pengalaman pengguna AbitMORE. Dengan menggunakan variasi pendekatan yang dijelaskan dalam jawaban pertanyaan tentang " Bagaimana cara mengarahkan pengguna anonim ke halaman login menggunakan modul Aturan? ".

Untuk melakukannya, anggap jalur halaman "Default 403" disetel ke "no_access" (via /admin/config/system/site-information, dekat bagian bawah halaman admin itu). Kemudian buat aturan menggunakan modul Aturan , dengan sebagai Peristiwa sesuatu seperti "Setelah mengunjungi simpul 'no_access'". Sehingga seluruh aturan akan terlihat seperti ini:

  • Acara: Setelah mengunjungi simpul 'no_access'
  • Kondisi:

    1. Pengguna memiliki peran -Parameter: User: [site:current-user], Roles: anonymous user
    2. BUKAN perbandingan teks -Parameter: Text: [site:current-page:url], Matching text: user/login
  • Tindakan: Pengalihan halaman -Parameter: URL: user/login

Jika Anda ingin melakukannya, Anda bahkan dapat menambahkan Tindakan lain untuk juga menampilkan beberapa pesan (informasi) di area pesan Drupal, dengan sesuatu seperti "Anda mencoba mengunjungi halaman yang memerlukan login ...".

Benar, itu mungkin mengharuskan Anda untuk mengaktifkan modul kontribusi tambahan ( Aturan ). Tetapi, seperti yang ditunjukkan oleh popularitasnya yang meningkat, modul itu mungkin sudah diaktifkan di sebagian besar situs mana pun (mirip dengan modul Views ), karena ada lusinan kasus penggunaan untuk modul ini. Hanya 1 variasi dari pertanyaan ini: bagaimana dengan meningkatkan pengalaman pengguna untuk "Halaman tidak ditemukan" dengan cara yang sama?

Opsi 3: Tampilkan blok masuk Pengguna pada halaman khusus

Variasi lain, sebagai alternatif dari Aturan "Aksi" (untuk mengarahkan ulang user/login), adalah membuat beberapa simpul yang ditunjuk, katakan dengan jalur seperti "my_login_page_with_login_block". Dan kemudian gabungkan ini dengan mengonfigurasi blok "Login pengguna" (via admin/structure/block) seperti:

  • Tampilkan blok itu di wilayah tema apa pun pilihan Anda.
  • Gunakan tautan " configure" di sebelah kanan blok login Pengguna, untuk mengatur " Pengaturan visibilitas " untuk " Halaman ". Yaitu mengubah opsi untuk " Tampilkan blok pada halaman tertentu " menjadi " Hanya halaman yang terdaftar ", dan tentukan path ( my_login_page_with_login_block) di dalam kotak teks di bawahnya. Jika karena alasan tertentu Anda tidak ingin menggunakan jalur, maka cukup tentukan node / nid (nid = id dari node) sebagai jalur sebagai gantinya.
Pierre
sumber
Hai Pierre, ini sangat membantu, saya akan mencoba ini dan memberi tahu Anda bagaimana caranya. Terima kasih
jelly46
1
Terima kasih atas umpan baliknya ... Semoga Anda tidak akan lupa suatu hari "kembali" dengan umpan balik Anda tentang hal itu (setelah Anda mencobanya). Sayang sekali tidak ada yang namanya "ingatkan saya nanti" (untuk kembali ke sana), misalnya diimplementasikan menggunakan sesuatu seperti 'Penjadwal Aturan' dan / atau "Tandai '(seperti yang akan kita lakukan di Drupal, kan?). .. Catatan untuk diri saya sendiri: tambahkan fitur seperti itu dalam distribusi "ArrayShift" ...
Pierre.Vriens
Yah itu telah memperluas pengetahuan saya tetapi belum menjawab pertanyaan, ini merupakan bantuan besar tetapi masih belum mencapai tanah yang dijanjikan.
jelly46
Modul LoginTogoggan bekerja seperti pesona
jelly46
1
Tidak masalah tentu saja, mari kita anggap itu sebagai fleksibilitas dan opsi Drupal untuk memilih yang tepat untuk semua orang secara individu!
Pierre.Vriens
5

Anda dapat menambahkan pengaturan untuk 'Default 403 (akses ditolak) halaman' dalam konfigurasi situs (admin / config / sistem / informasi-situs). Dan kemudian tampilkan blok 'Login pengguna' (admin / struktur / blok / kelola / pengguna / login / konfigurasi) di halaman ini.

Andrew
sumber
3

Tanpa modul LoginToboggan orang dapat mengkonfigurasi blok login Pengguna agar terlihat pada halaman yang ditunjuk dan dibatasi untuk pengguna anonim. Dalam blok pengaturan Visibilitas untuk blok login Pengguna:

  1. Di tab "halaman", set "Tampilkan blok pada halaman tertentu" menjadi "Hanya halaman yang terdaftar" dan masukkan halaman.

  2. Di tab "Peran", centang "pengguna anonim" untuk blok Tampilkan untuk pengaturan peran tertentu.

MikeSNP
sumber
2

Secara teori, Anda dapat mengatur halaman Default 403 (akses ditolak) di bawah Informasi situs menjadi pengguna / login di / admin / config / sistem / informasi-situs.

Belum pernah mencobanya tapi itu hanya ide?

Connor Gurney
sumber
1
Ide buruk. Pengguna yang masuk dan ditolak aksesnya berakhir di loop pengalihan tanpa akhir yang menyebabkan browser mogok.
Giles B