2009-09-19 13 views
5

Yeni drupal. Sanırım çok aptal bir soru. PHP filtre modülünü etkinleştirdim, böylece kendi PHP kodumla yeni bir sayfa oluşturabilirim. Bu sayfa sadece kimliği doğrulanmış kullanıcılar tarafından erişilebilir olmak istiyorum, anonim kullanıcılar tarafından görülmez. Bunu nasıl başarabilirim? Tek tek sayfalar için izinleri drupal olarak ayarlayabilir miyim? Ya da anonim bir kullanıcının mevcut sayfaya PHP kodu üzerinden erişmeye çalıştığını belirlemek mümkün mü?ayar sayfası erişim izinleri drupal içinde

cevap

5

Drupal'da yeni olduğunuzu belirttiğinizden beri, bir uyarı sözüyle - özel kodunuz için PHP filtresi kullanmak kötü bir uygulama olarak kabul edilir. Bu bir kırılma ve bir güvenlik problemi.

Bu sizin özel modülü yazmak için daha iyi, ve bunu, vs vs bunu nasıl görünmesi gerektiğini görmek için kontrol edebilirsiniz güzel sample module var için kontrol edebilirsiniz kendi özel izinler uygulayabilirsiniz. Açıkçası, el kitabını da kontrol edin. Gerçekten göründüğü kadar zor değil.

Ama sorunuza geri dönün. Eğer PHP-filtrelenmiş bir sayfada aşağıdaki satırı koyabilirsiniz:

global $user; 

Bu Geçerli kullanıcıyı temsil eden bir nesneye erişim sağlar. $user->roles, kullanıcının rollerini temsil eden bir dizidir. Sadece authenticated user (veya biraz daha iyi - oluşturduğunuz özel bir rol) olup olmadığını kontrol edebilirsiniz. http://modeling-languages.com/content/how-i-created-site-drupal: - Burada Drupal ile benim site oluşturduk nasıl fazla bilgi

<?php 
// we have to access the content of the global-scope variable $user 
global $user; 

//Checking if the user is registered 
if (in_array('authenticated user', $user->roles)==FALSE) { 
header('Location:/content/restrictedaccess') ; 
} 
?> 

// Sayfa içeriği

:

+0

Teşekkürler Eli :) Üzgünüm, sana çok geç teşekkür ediyorum. Dikkatli sözünü çok ciddiye aldım :) Önerileriniz ve Jordi'nin kodu çok kolay! Kısa bir süre sonra "basit erişim" modülü ile değiştirdim. Bu gerçekten de belirttiği kadar basit ve gereksinimlerimi mükemmel bir şekilde karşıladı. Gelecekte kendi modüllerini oluşturmak için örnek modül için bağlantınızı kullanacağım. Onun iyi bir başlangıç! – Nikhil

2

bir sayfa aşağıdaki php kodu kullanabilirsiniz erişen anonim açmasını önlemek için

4

Yukarıdaki yanıtları okuduğunuzdan, hazır simple access modülünü de düşünebilirsiniz. İhtiyaçlarıma uygun ve eğer PHP filtrelemesinden sakınmak istiyorsanız ve kendi modülünüzü oluşturmak istemiyorsanız (her ne sebeple olursa olsun), simple access'u kontrol edebilirsiniz.

+0

Teşekkürler! Bu bana yardımcı oldu. – BigJoe714