it-swarm-tr.com

Web sitesini oturum açmış olanlar dışında herkese devre dışı bırak

Bunu yapmanın birçok yolu olduğunu biliyorum, ancak derinlemesine düşündüğümde, sitenin küresel olarak devre dışı bırakılması zor olabilir.

Ne istiyorum bir kullanıcı web sitesine gittiğinde, nerede olursa olsun giriş sayfasına yönlendirilir. Her menü öğesinde veya sayfanın diğer alanlarında özel ayarlara ihtiyaç duymamayı tercih ederim.

Bunu yapmanın kolay bir yolu var mı? Yoksa bunu yapan süper harika bir eklenti mi? Şimdiye kadar yaptığım araştırmalar boşuna oldu. Ancak bu, JED/Google'daki anahtar kelime seçimim olabilir.

11
Jordan Ramstad

Bunlardan biri işe yarar mı?

Sadece Üyeler (JED'den)

Anonim kalırken meraklı gözleri kısmen veya tüm web sitenizden uzak tutun. İsteğe bağlı olarak, ziyaretçilerin davetiye kodu gerekmeksizin veya gerekmeden doğrudan web sitenize kaydolmasına izin verebilirsiniz.

kayıtlıSadece (JED'den)

sadece eklenti Joomla sitesine yalnızca kayıtlı kullanıcılara erişimi kısıtlar.

Bir konuk herhangi bir Joomla içeriğine erişmeye çalıştığında, giriş sayfasına yönlendirilir.

14
Brian Peat

1) Joomla! 'Nın Dahili ACL'sini kullanın

Ziyaretçilerinizi bir giriş sayfasına varsayılan olarak kaydettirmenizi ve Kayıtlı kullanıcıları kullanarak Joomla!.

Kayıtlı kullanıcılar için izinleri olan bir Üst Düzey Menü öğesi ayarlayın; ardından o ağaçtaki her bir Menü öğesi yalnızca görünür olacak ve Kayıtlı kullanıcılar tarafından kullanılabilecektir.

Joomla'da mükemmel bir ACL eğitimi var! Dokümanlar.

Ancak, dosyalar ve belgeler kayıtlı olmayan kullanıcılar tarafından indirilebilir (yani doğrudan bağlantıya sahiplerse).

Bu durumda, Akeeba Release Systems veya SobiPro gibi bu dokümanları korumak istiyorsanız 3. taraf bir uzantı kullanmanız gerekecektir.

2) Şifre Korumalı Dizinler

Sitenizi korumanın en basit yolu dizininizi .htaccess /

Bu uygun değildir, ancak cPanel kullanıyorsanız, örneğin Güvenlik -> Parola Korumalı Dizinler'e gidin ve dizinleri adlandırmak, kullanıcıları eklemek veya kaldırmak ve bu kullanıcıları Parola Korumalı Dizine atamak için sihirbazı kullanın - her kullanıcıya benzersiz bir ad verebilirsiniz ve şifre.

Bu yetersiz, ancak basit ve pratikte oldukça sık kullanılır - ancak, tekrar ediyorum, muhtemelen en iyi ACL'yi kullanır ve dokümanları indirmeye karşı korursa, 3. taraf bir uzantıdır.

Dosyalarınızı/dokümanlarınızı Parola Korumalı dizinin altında tutarsanız, bu dosyalar da korunur - ilk önce oturum açmak için bu dizine erişmeye çalışan izinleri olan bir kullanıcı gerekir.

5
NivF007

@ Bryan'ın cevabına dayanarak bunun cevabını vereceğim.

Yalnızca Üyeler eklentisi çok umut verici görünüyor, bu yüzden yorum yok.

registrationOnly eklentisi ücretsiz, ancak koddan etkilenmedim, bu yüzden çatallama ve yeniden yazma ve kullanımdan kaldırılan kodu kaldırma özgürlüğünü aldım .

Buna ek olarak, Topluluk Oluşturucu desteğini kaldırdım çünkü .... iyi ... Topluluk Oluşturucu'dan nefret ediyorum:

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');
    }
}

Github'a da koyun: https://github.com/Joomla-StackExchange/registeredOnly

Umarım bu birkaçınıza yardımcı olur

3
Lodder

Müşterilerim Joomla'yı kullanarak mümkün olduğunca kesin bir şekilde kilitlenmesi gereken bir extranet yapma isteğim vardı. Bunu siteyi Çevrimdışı olarak Genel Yapılandırma olarak ayarlayarak yaptım, sonra oluşturduğum 1 özel kullanıcı grubunu vermek için ACL'yi düzenledim Çevrimdışı Erişim izin .

OAuth kullandığınızdan bahsettiğiniz yorumlarda fark ediyorum - buna yardımcı olan bazı uzantılar otomatik olarak bir kullanıcı grubuna kullanıcı ekleyecek şekilde yapılandırılabilir, böylece bu işlevi bunları yukarıdaki talimatlara göre yapılandırılmış gruba ekleyin.

Sonra offline.php şablonumda varsayılan 'Bu site çevrimdışı' sayfası yerine extranet tarzı bir giriş sayfası gibi görünmesini sağlamak için dosya.

3
codinghands

Tüm menü bağlantılarının iznini kayıtlı olarak ayarlayarak kullanıcıyı oturum açmaya zorlayabilirsiniz.

0
Adam B