Rolü ile erişilebilir Drupal bölüm

4 Cevap php

Ben Drupal Kullanıcı Rolü dayalı Drupal sitedeki içeriğin erişimini sınırlamak gerekir.

http://site.com/managers/intro

http://site.com/managers/reviews

http://site.com/managers/up-for-raises

İçerik birden çok içerik türleri olabilir ve belirli bir içerik türü ile sınırlı değildir. Ben bütün içerik türünü kilitlemek değil böylece bu içerik türleri başka sitede kullanılacaktır.

Ben zaman oluşturulur tüm düğümler / görünüm menüsü ayarları tarafından bu adreslere yaşamak alabilirsiniz, ama ben nasıl template.php içinde önişlem fonksiyonları bir grup dışındaki rolü üzerinden erişim sınırı mı bilmiyorum, ama bu gibi görünüyor bunu yapmak için yanlış bir yol olabilir.

Ben bir modül için aradı ve # drupal-destek IRC istedi, ama hiçbir sonuç sınırlayıcı faktör olarak drupal rolleri kullanmak geldi.

4 Cevap

I sağ var, ne elde etmeye çalıştığınız sadece belirli roller belirli bir URL'ye bulunan sayfalara erişmek için güçlü olmak zorunda olduğunu.

BY USING A CONTRIB ACCESS MODULE

Zaten mcrittenden tarafından belirtildiği gibi, bir plethora of modules Eğer içerik erişimi çimdik sağlar vardır. Eğer ayrı ayrı her düğüm için izni kurmak için izin verir gibi aralarında, content access elbette, istediğiniz ne yapabilirim.

BY USING FLAG + VIEWS

Kodlama olmadan bunu yapmak için başka bir olası yolu, flag module views module bir kombinasyonu ile. İşte yapacağını nasıl kısa bir bakış:

  1. Işaretlemek için kullanabileceğiniz bir bayrak "intro" yaratmak: Eğer (örneğin size söz belirtilen adreslerden herhangi görülebilmesini olacak içerik (! Içerik herhangi bir tür) işaretlemek için kullanabileceğiniz üç bayraklar, oluşturma sayfada "/ yöneticisi / intro" görüntülenir gerekir düğümler)
  2. Lütfen bayrak bazında filtreleyerek DB ihtiyacınız düğümleri çekeceği 3 incelemeler (size söz listelenen her adres için bir tane) oluşturun.
  3. Rolüne göre bu görüşlerin izni ayarlayın.

BY WRITING A MODULE THAT CHECKS THE URI AND BLOCK UNAUTHORIZED USERS

Mutlaka bunu yapabilirsiniz. Ana avantajı CPU ve bellek yükü açısından çok hafif bir çözüm olacağını olurdu, ama dikkat etmeniz gereken bir kaç FRİKİKLERİNDEN vardır. Örneğin, her zaman URL'ye http://example.com/node/nodenumber ), so you have to check a URL for its aliases too. But also the fact that a user might append a bogus ?something biçiminde adresler aracılığıyla içeriğe erişebilir ve yazmak zorunda olduğu gerçeği regex almak için Böyle bir durumda hesap ...

(Ayrıca mcrittenden tarafından verilen rules module fikri iyi biridir, ama ben onun cevabını okudum sadece ona düşünce olarak ben söz vermedi).

Bu yardımcı olur umarım!

Bu eski bir soru olmasına rağmen, http://drupal.org/project/path_access tam olarak bu şimdi yok.

'Yöneticiler' hep o bölüm için URL olacak ise, geçerli kullanıcının rolü bunlardan biri değilse hook_init temelde söylemek için kullandığı küçük bir küçük modülü yazabilirsiniz geliyor bana rolleri belirlenmiş ve url "/ yöneticileri /", daha sonra drupal_goto () giriş sayfasını içerir.

Eğer bu sizin için kurallarını kullanarak olurdu tek şey varsa da o buna değer değil, bu olsa, oldukça kolay halletmek için Kurallar modülünü kullanabilirsiniz.

Orada (örneğin her şeyin nodeaccess gibi) giriş-by-düğüm modülleri bol de vardır, ama bunlar da muhtemelen böyle basit bir görevi gerçekleştirmek için değer olduğunu daha çaba olurdu.

Ayrıca bir rolü ve bir menü arasında erişimi, ya da bir rolü ve bir menü ağacı ilişkilendirmek sağlayan, Menu Access araştırmak olabilir. (Drupal, "menü yönlendirici" masa bir URL'ye içerik her parça bağlayan trafik yönlendirici de esrarengiz sadece UI değil, unutmayın.)

Tüm öğeleri menü girişleri ile ilişkili olduğundan, yol takma mutlaka evrensel olmama sorunu yok. Ayrıca kitap navigasyon taklit etmek gibi Menu Block olarak modülleri kullanabilirsiniz.

Bu modül tam ve var olmasına rağmen bir Alfa ya da Beta sürümü daha yakın görünüyor önerilen durum, yani üretim sitelerinde dikkatli olun.