Views ile oluşturulan bir video galerisinde gösterilen düğümlerin URL'lerine doğrudan erişimi nasıl sınırlayabilirim?


10

Ben kullanarak video galerisi yaptık Görüntüleme . Ancak, yalnızca sayfanın herkese açık olmasını ve videoların her birine ayrı ayrı erişmesini önlemek istiyorum.

Videoların bir tür içerik olarak oluşturulması gerekiyordu, bu nedenle hepsinde /content/video-1vb. Erişilebilir ULR'ler var .

Yanıtlar:


5

İçerik erişim modülünü deneyin ve videoiçeriğe ayrı ayrı erişimi önleyin (veya istediğiniz gibi ona erişim de ayarlayabilirsiniz roles)

Bu modül, içerik türleri için izinleri role ve yazara göre yönetmenizi sağlar. Her içerik türü için özel görünüm, düzenleme ve silme izinleri belirlemenizi sağlar. İsteğe bağlı olarak her içerik erişimi ayarını etkinleştirebilirsiniz, böylece her içerik düğümü için erişimi özelleştirebilirsiniz.

Ayrıca Düğüm Görünümü İzinleri modülünü kullanabilirsiniz, ancak kullanmanızı öneririz Content access module.

(Gelecek için drupal ile çalışmak istiyorsanız bu yararlı modüllerle daha iyi ilgilenmek daha iyidir)


Neredeyse ihtiyacım olan şey. Sonunda erişimi düşük seviyeden kontrol ettim, çünkü bazı durumlarda ana sayfaya yönlendirmek istedim, diğerlerinde 404, vb. Belki benim durumumda daha iyi bir ayarlama ile, ama araştırmak için zaman yoktu.
Cesar

3

Düğüm Görünümü İzinleri modülünü yükleyin .

Düğüm görüntüleme izinleri modülü, izinler sayfasında Drupal 6'daki gibi her içerik türü için "Kendi içeriğini görüntüle" ve "Herhangi bir içeriği görüntüle" izinlerini etkinleştirir.

Şimdi izin sayfasına gidin ve Anonim kullanıcı için video içerik türünden herhangi bir içerik iznini görüntüleyin .

Video galerisindeki videolardan yalnızca birkaç tanesinin anonim kullanıcı tarafından erişilebilir olmasını istiyorsanız, Deny Access modülünü yükleyin .


1

İçerik türünüzü güncelleyin.

  1. Display_order vb. Gibi sayısal bir alan ekleyin .

  2. Bu alanın değerini yalnızca göstermek istediğiniz videolar için ayarlayın.

  3. Görünüm ayarlarınıza gidin ve ayarlayın;

    Çağrı cihazı kullan: Belirtilen sayıda öğeyi görüntüleme | x ürün

    x, göstermek istediğiniz videoların sayısıdır

  4. Ardından sıralama düzenini görüntüleme sırasına göre uygulayın

Umarım işe yarar.


1

Tavşan Deliği modülünün tam olarak aradığınızı yaptığını düşünüyorum . İşte modülün açıklama sayfasından ihtiyacınıza cevap veren bir alıntı. İyi şanslar.

Tavşan Deliği, bir varlık kendi sayfasında görüntülendiğinde ne olacağını kontrol etme yeteneğini ekleyen bir modüldür.

Belki de, bir karuselde görüntülenen resim içerik türü gibi, asla kendi sayfasında görüntülenmemesi gereken bir içerik türünüz vardır. Tavşan Deliği, bu düğümün kendi sayfasında / düğüm / xxx aracılığıyla erişilebilir olmasını engelleyebilir.


1

Go for tavşan deliği modülü, tam olarak aynı şeyi yapar. Tüm içeriğe görünümler / kod aracılığıyla erişilebilir, ancak "content / ***" ayrıntı sayfasına erişmeye çalıştığınızda erişim reddedilir veya bir yönlendirme ayarlayabilirsiniz.


Bir gezintiye çıkacağım, teşekkürler. Şimdilik, düşük seviyede çözdüm, ancak zaten yapılmış özel modülleri bilmek en iyisidir.
Cesar

0

1) İçerik türünüzde bir Boole değeri alanı oluşturun .

2) Değer true olarak seçilirse, o video alanına benzersiz bir sınıf eklenmelidir; değer false olarak seçilirse, sınıf bu video alanına eklenmemelidir.

3) Sınıfın bulunmadığı videoları gizlemek için biraz CSS yazın .


0

Kurallar modülünü kullanarak aşağıdakine benzer bir kural uygulayabilirsiniz:

{ "rules_disallow_accesss_to_selected_urls" : {
    "LABEL" : "Disallow access to selected URLs",
    "PLUGIN" : "reaction rule",
    "OWNER" : "rules",
    "REQUIRES" : [ "rules" ],
    "ON" : { "init" : [] },
    "IF" : [
      { "text_matches" : {
          "text" : [ "site:current-page:url" ],
          "match" : "content\/video-1",
          "operation" : "regex"
        }
      }
    ],
    "DO" : [
      { "drupal_message" : {
          "message" : "Sorry, access to URLs like [site:current-page:url] is not allowed ...",
          "type" : "error"
        }
      },
      { "redirect" : { "url" : "no_access" } }
    ]
  }
}

Göreli yola erişmeye çalışan herkes yol content/video-1içeren bir sayfaya yönlendirilir no_accessve ilgili bir hata mesajı gösterilir (bu yolu kendi kurallarınıza uyacak şekilde uyarlayın ve gösterilecek mesajı inceleyin).

Yukarıdaki kural yalnızca göreli yola content/video-1(sorunuzdaki gibi) erişimi kısıtlar . Kuralı benzer URL'lere genişletmek istiyorsanız, benzer bir content\/video-1şeye content\/video-\\d+$veya yollarınızın adlandırma kuralına uyan herhangi bir varyasyona geçin .

Yukarıdaki kural, yalnızca seçilen rollere sahip kullanıcılar için Kural Eylemini uygulamak için (henüz) dikkate almaz. Ancak Kurallar modülüne biraz aşina olan herkes için, bu basit bir ileri "Koşul" eklemek için ... örneğin: editör, yönetici vb. Rolü olan kullanıcılar için kural eylemini atlayın. "Kullanıcının rol yöneticisi (ve / veya düzenleyicisi) YOK" durumu. Bu şekilde, bu tür özel kullanıcılar yine de bu tür düğümleri yine de görüntüleyebilir (bu tür ekstra koşullar olmadan artık bu düğümleri görüntüleyemezler ...).

Bu kuralı kendi sitenizde denemek için yukarıdaki Kurallar kodunun tamamını kopyalamanız ve "İçe Aktar" işleviyle oluşturulmuş yeni bir Kural'a yapıştırmanız yeterlidir (Kurallar Kullanıcı Arayüzü etkinse kullanılabilir). Daha sonra kendi ortamınıza uyması için daha fazla düzenleme / rafine edin (örn. "Üzgünüz, ..." mesajı gösterilecektir).

Ek ayrıntılandırma

Diğer cevaplardan birine şunları içeren bir yorum eklediniz:

... bazı durumlarda ana sayfaya, bazılarında 404 vb. Yönlendirmek istedim, bu yüzden daha iyi bir kontrole sahiptim ...

Yapmak istediğiniz şey buysa, Koşullu Kurallar modülünü de ekleyerek yukarıdaki Kural Eylemini daha da hassaslaştırabilirsiniz . Bununla, "bazı durumlar" ın her biri için yönlendirilecek uygun URL'yi belirtebilirsiniz. Cevabım bakın " Bir liste kutusunun değerine? Bağlı bazı alanların değerlerini nasıl ayarlanır Bir Kurallar Eylem içinde bu modülü nasıl kullanılacağına ilişkin bir uygulama için".

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.