2009-09-19 19 views
5

में पेज एक्सेस अनुमतियों को सेट करना मैं ड्रूपल के लिए नया हूं। मुझे लगता है कि यह एक बहुत ही गूंगा सवाल है। मैंने PHP फ़िल्टर मॉड्यूल को सक्षम किया है ताकि मैं इसमें अपने स्वयं के PHP कोड के साथ एक नया पृष्ठ बना सकूं। यह विशेष पृष्ठ मैं केवल प्रमाणीकृत उपयोगकर्ताओं तक पहुंच योग्य होना चाहता हूं, जो अज्ञात उपयोगकर्ताओं को दिखाई नहीं दे रहा है। इसे कैसे प्राप्त किया जा सकता है? क्या मैं ड्रोपल में अलग-अलग पृष्ठों के लिए अनुमतियां सेट कर सकता हूं? या यह पहचानना संभव है कि एक अज्ञात उपयोगकर्ता PHP कोड के माध्यम से वर्तमान पृष्ठ तक पहुंचने का प्रयास कर रहा है?ड्रूपल

उत्तर

5

चूंकि आपने उल्लेख किया है कि आप ड्रूपल के लिए नए हैं, सावधानी के एक शब्द - आपके कस्टम कोड के लिए PHP फ़िल्टर का उपयोग करके बुरा अभ्यास माना जाता है। यह एक हैक है और यह एक सुरक्षा समस्या है।

अपने कस्टम मॉड्यूल को लिखना बहुत बेहतर है, और यह अपनी खुद की कस्टम अनुमतियां लागू कर सकता है, जिसे आप जांच सकते हैं इत्यादि। एक अच्छा sample module है जिसे आप देख सकते हैं कि यह कैसा दिखना चाहिए। जाहिर है, पुस्तिका भी देखें। यह वास्तव में उतना कठिन नहीं है जितना लगता है।

लेकिन आपके प्रश्न पर वापस जाएं। आप अपने PHP फ़िल्टर पेज में निम्न पंक्ति रख सकते हैं:

global $user; 

यह आपको एक उद्देश्य यह है कि वर्तमान उपयोगकर्ता का प्रतिनिधित्व करता है के लिए पहुँच प्रदान करेगा। $user->roles एक सरणी है जो उपयोगकर्ता की भूमिकाओं का प्रतिनिधित्व करती है। आप बस देख सकते हैं कि इसमें authenticated user है (या थोड़ा बेहतर - आपके द्वारा बनाई गई कस्टम भूमिका)। http://modeling-languages.com/content/how-i-created-site-drupal: - अधिक कैसे मैं यहाँ Drupal के साथ अपनी साइट बनाई पर जानकारी

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

// पृष्ठ सामग्री

:

+0

धन्यवाद एली :) क्षमा करें, मैं आपको बहुत देर से धन्यवाद दे रहा हूं। मैंने सावधानी बरतने का अपना शब्द लिया :) आपके सुझाव और जॉर्डी के कोड ने इसे बहुत आसान बना दिया! हालांकि मैंने इसे जल्द ही "सरल पहुंच" मॉड्यूल के साथ बदल दिया। यह वास्तव में सरल है जैसा कि यह बताता है और यह मेरी आवश्यकताओं को पूरी तरह से मेल खाता है। मैं भविष्य में अपने मॉड्यूल बनाने के लिए नमूना मॉड्यूल के लिए अपने लिंक का उपयोग करूँगा। यह एक अच्छा स्टार्टर है! – Nikhil

2

गुमनाम उपयोगकर्ताओं तक पहुँचने के लिए एक पृष्ठ आप निम्नलिखित php कोड का उपयोग कर सकते रोकने के लिए

4

उत्तर से ऊपर पढ़ने के बाद, आप आसानी से उपलब्ध simple access मॉड्यूल पर भी विचार कर सकते हैं। यह मेरी आवश्यकताओं के अनुरूप है और यदि आप PHP फ़िल्टरिंग से बचने के लिए हैं और अपने स्वयं के मॉड्यूल (जो भी कारणों से) नहीं बनाना चाहते हैं, तो आप simple access देख सकते हैं।

+0

धन्यवाद! इससे मुझे मदद मिली। – BigJoe714