Kurallar modülünü kullanarak anonim kullanıcıları giriş sayfasına nasıl yönlendirirsiniz?


12

Ben anonim kullanıcıları giriş sayfasına yönlendirmek için drupal 7 ile kurallar modülü kullanıyorum, bu yüzden olay "Drupal başlatılıyor", koşul "Kullanıcı rol var" anonim kullanıcı ve "Site giriş url değil ", ardından site giriş URL'sine" Sayfa yönlendirme "işlemi ekledi. Kuralı test etmeye çalıştığımda; drupal, apache sunucusu çalışmayı durdurana kadar giriş sayfasına tekrar tekrar yönlendirmeye devam etti. Herhangi bir tavsiye.


anonim kullanıcı site içeriğini keşfedebilir mi? hangi nedenle giriş sayfasını yeniden yönlendirmeniz gerekir?
monymirza

anonim kullanıcıların herhangi bir site içeriğini keşfetmesine izin verilmez ve davet dışında kayıt yaptırmalarına izin verilmez. Kullanıcılar siteyi kullanmak için giriş yapmalıdır.
Aboodred1

Bu bölümü anlamıyorum "kural drupal göstermeden giriş sayfasına yönlendirmeye devam etti." Ne demek istediğini açıklayabilir misin? Aksi takdirde hangi parçanın çalışmadığını anladığımdan emin değilim.
Boriana Ditcheva

Ben anasayfaya veya başka bir sayfaya gidip giriş sayfasına gitmediğimde kural iyi çalışıyor; ancak kullanıcı giriş sayfasına yönlendiriyor, ancak tarayıcı apache çalışmayı durdurana kadar giriş sayfasına tekrar tekrar yönlendiriyor.
Aboodred1

anonim kullanıcıların herhangi bir site içeriğini keşfetmesine izin verilmiyorsa, içeriği görüntüleme iznini kaldırın
monymirza

Yanıtlar:


12

Aşağıdaki gibi çözdüm yolu:

  • Olaylar: Drupal başlatılıyor
  • Koşullar:

    1. Kullanıcının rolleri -Parameter: User: [site:current-user], Roles: anonymous user
    2. NOT Metin karşılaştırması -Parameter: Text: [site:current-page:url], Matching text: user/login
  • Eylemler: Sayfa yönlendirmesi -Parameter: URL: user/login


Aşağıdaki gibi dışa aktarma kuralı:

{ "rules_login" : {
    "LABEL" : "login",
    "PLUGIN" : "reaction rule",
    "OWNER" : "rules",
    "TAGS" : [ "login" ],
    "REQUIRES" : [ "rules" ],
    "ON" : { "init" : [] },
    "IF" : [
      { "user_has_role" : {
          "account" : [ "site:current-user" ],
          "roles" : { "value" : { "1" : "1" } }
        }
      },
      { "NOT text_matches" : { "text" : [ "site:current-page:url" ], "match" : "user\/login" } }
    ],
    "DO" : [ { "redirect" : { "url" : "user\/login" } } ]
  }
}

@TopTomato bu drupal 7 için
Aboodred1

bir hata yaptım ve çalışıyor.
TopTomato

@TopTomato Harika! Sevindim senin için çalıştı.
Aboodred1

3

/admin/people/permissionsAnonim kullanıcılar için yayınlanan içeriği görüntüle seçeneğinin işaretini kaldırın.

resim açıklamasını buraya girin

şimdi /admin/config/system/site-information(erişim reddedildi) sayfa alanına 'kullanıcı' eklemeye gidin

resim açıklamasını buraya girin


etrafında iyi bir çalışma, ancak yine de tüm kullanıcılar aynı izinlere sahip olmadığından erişim reddedildi sayfasını göstermem gerekiyor. Yardımın için minnettarım.
Aboodred1

daha sonra 2. adımda (kullanıcı reddedildi) sayfa alanından 'kullanıcı'yı kaldırın
monymirza

kaldırırsam; anonim kullanıcılar giriş sayfasına yönlendirilmeden erişimi reddedebilir. Eminim bunu kurallar modülünde yapabileceğim bir yol var
Aboodred1

Evet. ayrıca kurallar modülü tarafından yapılabilir. bunu tetik çekirdek modülü aracılığıyla da yapabilirsiniz.
monymirza

1
Birisi erişimi reddedilirse, giriş yapmadıkları anlamına gelmez. Bu
Cevapya

1

Eminim bunu kurallarla çıkarabilirsiniz, ancak temanızın template.php dosyasında da yapmak kolay olurdu.

Böyle bir şey işe yaramalı:

global $user;
if ($user->uid == 0 && arg(0) != 'user' && arg(1) != 'login'){
  drupal_goto('user/login');
}

Veya kullanıcı / kayıt ve kullanıcı / şifre sayfalarına erişim hala isteniyorsa:

global $user;
if ($user->uid == 0 && arg(0) != 'user'){
  drupal_goto('user/login');
}

Teşekkürler @Chance Sorumu göndermeden önce bu çözümü buldum. Ben kurallar modülünü kullanmak ya da en azından neden "Drupal başlatılıyor" ile çalışmadığını anlamak istiyorum
Aboodred1

@Chance, merak ediyorum. Bu, .theme dosyası içinde nerede yaşar?
TikaL13

0

Buradaki sorun söz konusu olay. Bunun yerine Drupal is initializingdeneyin Content is viewed.


Bu soruyu göndermeden önce denedim ve görünüm sayfaları, kayıt sayfası, temelde düğüm olmayan herhangi bir sayfa dışında benimle iyi çalıştı.
Aboodred1

0

Bunun iki yıl önceki bir gönderi olduğunu biliyorum. Ancak, anonim bir kullanıcıyı kurallarla kullanıcı giriş sayfasına yönlendirmenin çözümü aşağıdaki gibidir:

  • olay: Sistem günlüğü girişi oluşturuldu
  • koşul: Kullanıcının rolü: anonim
  • eylem: sayfa yönlendirme değeri: kullanıcı

Umarım bu birisine yardım eder.


buraya göndermeden önce çözümünüzü denediniz mi?
Aboodred1
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.