it-swarm-id.com

Nonaktifkan situs web untuk semua kecuali pengguna yang masuk

Saya tahu ada banyak cara untuk melakukan ini, namun ketika saya berpikir secara mendalam, menonaktifkan situs secara global mungkin sulit.

Yang saya inginkan adalah ketika pengguna pergi ke situs web, mereka akan diarahkan ke halaman login di mana pun mereka berada. Saya lebih suka tidak perlu pengaturan khusus di setiap item menu atau area lain dari halaman.

Apakah ada cara sederhana untuk melakukan hal ini? Atau pengaya super luar biasa yang melakukan ini? Pencarian saya sejauh ini sia-sia. Namun itu mungkin saja pilihan kata kunci saya di JED/Google.

11
Jordan Ramstad

Akankah salah satu dari ini bekerja?

Hanya Anggota (Dari JED)

Jauhkan mata Anda dari bagian atau seluruh situs web Anda, sementara mereka tetap anonim. Secara opsional Anda dapat mengizinkan pengunjung untuk mendaftar langsung ke situs web Anda dengan atau tanpa memerlukan kode undangan.

terdaftar hanya (Dari JED)

plugin Registed onlyly membatasi akses ke situs Joomla hanya untuk pengguna terdaftar.

Ketika seorang tamu mencoba mengakses konten Joomla apa pun, mereka akan diarahkan ke halaman login.

14
Brian Peat

1) Gunakan ACL Built-In Joomla!

Saya sarankan untuk mengarahkan pengunjung ke halaman login dan menggunakan ACL bawaan Joomla! Menggunakan pengguna terdaftar.

Tetapkan item Menu Tingkat Atas dengan izin untuk pengguna Terdaftar - dan kemudian setiap item Menu di pohon itu hanya akan terlihat dan tersedia untuk pengguna Terdaftar.

Ada yang luar biasa tutorial tentang ACL di Joomla! Documents.

Namun, file dan dokumen masih dapat diunduh oleh pengguna yang tidak terdaftar (mis. Jika mereka memiliki tautan langsung).

Dalam hal ini, Anda harus menggunakan ekstensi pihak ke-3, jika Anda ingin melindungi dokumen-dokumen itu, seperti Akeeba Release Systems atau SobiPro.

2) Direktori yang Dilindungi Kata Sandi

Cara 'paling sederhana' untuk melindungi situs Anda adalah dengan Kata Sandi Lindungi direktori Anda melalui .htaccess /

Tidak berlaku, tetapi jika Anda menggunakan cPanel, misalnya, buka Keamanan -> Direktori yang Dilindungi Kata Sandi dan gunakan wizard untuk memberi nama direktori, tambahkan atau hapus pengguna dan tetapkan pengguna tersebut ke Direktori yang Dilindungi Kata Sandi - Anda dapat memberikan nama unik kepada setiap pengguna dan kata sandi.

Ini tidak valid, tetapi sederhana dan cukup sering digunakan dalam praktik - namun, saya tegaskan, mungkin sebaiknya menggunakan ACL dan jika melindungi dokumen dari pengunduhan, ekstensi pihak ke-3.

Jika Anda menyimpan file/dokumen Anda di bawah direktori Dilindungi Kata Sandi, maka itu akan dilindungi juga - mengharuskan pengguna dengan izin mencoba mengakses direktori tersebut untuk login terlebih dahulu.

5
NivF007

Saya akan memberikan jawaban saya untuk ini berdasarkan jawaban @ Bryan.

Plugin Hanya Anggota terlihat sangat menjanjikan, jadi tidak ada komentar untuk itu.

Plugin RegistOnly gratis, namun saya tidak terkesan dengan kode tersebut, jadi saya mengambil kebebasan forking dan menulis ulang dan menghapus kode yang sudah usang.

Selain itu, saya menghapus dukungan Community Builder karena .... well ... Saya benci Community Builder:

defined('_JEXEC') or die('Restricted access');

class plgSystemRegisteredonly extends JPlugin
{
    public function onAfterRoute() 
    {
        $app   = JFactory::getApplication('site');
        $input = $app->input;
        $user  = JFactory::getUser();

        // Do nothing if in backend or user is logged in
        if ($app->isAdmin() || !$user->guest)
        {
            return;
        }

        // Get the component, view and task
        $option = $input->get('option');
        $view   = $input->get('view');
        $task   = $input->get('task');

        // If user is logging, registering or requesting user/pass, dont redirect
        if (($option == 'com_users') && (($task == 'login') || ($task == 'register_save') || ($task = 'remindusername') || ($task == 'requestreset')))
        {
            return;
        }

        // If user is at login form, registering or recovering user/password, dont redirect
        if (($option == 'com_users') && (($view == 'login') || ($view == 'reset') || ($view == 'remind') || ($view == 'register')))
        {
            return;
        }

        $app->redirect(JUri::base() . 'index.php?option=com_users&view=login', 'You must be logged in to access this site');
    }
}

Pasang juga di Github: https://github.com/Joomla-StackExchange/registeredOnly

Semoga ini bisa membantu beberapa dari Anda

3
Lodder

Saya punya permintaan klien untuk membuat ekstranet untuk mereka menggunakan Joomla, yang harus 'dikunci' seketat mungkin. Saya melakukan ini dengan menyetel situs ke Offline di Global Configuration, kemudian mengedit ACL untuk memberikan 1 grup pengguna khusus yang saya buat izin Akses Offline .

Saya perhatikan di komentar yang Anda sebutkan menggunakan OAuth untuk masuk - beberapa ekstensi yang membantu dengan ini dapat dikonfigurasi untuk secara otomatis menambahkan pengguna ke grup pengguna, sehingga Anda kemudian dapat menggunakan fungsi ini untuk tambahkan mereka ke grup yang dikonfigurasi sesuai instruksi di atas.

Saya kemudian mengesampingkan offline.php file dalam templat saya agar tampak seperti halaman login gaya ekstranet, daripada halaman 'Situs ini offline'.

3
codinghands

Anda dapat mengatur izin semua tautan menu untuk terdaftar, memaksa pengguna untuk masuk.

0
Adam B