उपयोगकर्ता केवल एक विशिष्ट नोड तक कैसे पहुंच सकता है, और उस प्रकार के सभी नोड्स नहीं?


10

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


1
क्या आपका मतलब है कि आप मॉड्यूल का उपयोग करके ऐसा कैसे कर सकते हैं, या आप उस कोड को कैसे लिख सकते हैं?
kiamlaluno

दूसरा तरीका नोड को उपयोग करने से मना करना है और फ़ील्ड द्वारा उपयोगकर्ता प्रोफ़ाइल का विस्तार करना है।
येटेक

ऐसा लगता है कि प्रति उपयोगकर्ता यह नोड उपयोगकर्ता प्रोफ़ाइल की आवश्यकता को पूरा करने के लिए हो सकता है। क्या इसके लिए एक अलग नोड होना चाहिए, या अतिरिक्त फ़ील्ड के साथ उपयोगकर्ता इकाई का विस्तार करना बेहतर नहीं होगा?
अल्फ्रेड आर्मस्ट्रांग

Drupal 7 ने प्रति उपयोगकर्ता नोड दृश्य अनुमतियाँ हटा दीं। आप उन्हें इस मॉड्यूल drupal.org/project/node_view_permissions
giorgio79

मॉड्यूल का उपयोग करें "nodeaccess" लिंक drupal.org/project/nodeaccess है काश यह आपकी मदद करेगा
महिपाल पुरोहित

जवाबों:


11

किसी मौजूदा मॉड्यूल का उपयोग करते हुए, आप कंटेंट एक्सेस के साथ ऐसा कर सकते हैं , जो (जब ACL का एक साथ उपयोग किया जाता है ) प्रत्येक उपयोगकर्ता के लिए नोड एक्सेस करने के लिए अनुमतियाँ सेट करने की अनुमति देता है।
इसका मतलब है कि आपको प्रत्येक नोड के लिए मैन्युअल रूप से एक्सेस अनुमतियों को सेट करने की आवश्यकता है।

यदि आप मैन्युअल रूप से नोड्स बनाते हैं, और फिर आप यह सुनिश्चित करना चाहते हैं कि केवल वही उपयोगकर्ता जो नोड के मालिक के रूप में सेट है, वह इसे देख (और संपादित) कर सकता है, तो आप एक कस्टम मॉड्यूल (जिसका अर्थ है एक मॉड्यूल बना सकते हैं) आपकी साइट के लिए उपयोग किया जाता है), और hook_node_access()निम्नानुसार लागू होता है (कोड को पढ़ने में आसान बनाने के लिए लिखा गया है):

function mymodule_node_access($node, $op, $account) {
  // We are interested to existing objects. When the node is being created, Drupal passed the node type instead of the node object. 
  if (is_object($node)) {
    $bool = (
      ($node->type == 'the node type you need to check') && 
      (($op == 'view') || ($op == 'update'))
    );
    if ($bool) {
      if ($account->uid == $node->uid) {
        return NODE_ACCESS_ALLOW;
      }
      else {
        return NODE_ACCESS_DENY;
      }
    }
  }

  return NODE_ACCESS_IGNORE;
}

इस हुक कार्यान्वयन का उपयोग करके, आपको उस प्रकार के प्रत्येक नोड के लिए दी गई पहुंच अनुमतियों को मैन्युअल रूप से संपादित करने की आवश्यकता नहीं है जो आप बनाते हैं। नोड के मालिक को बदलना भी आसान होगा, क्योंकि आपको उस नोड की एक्सेस अनुमतियों को बदलने की आवश्यकता नहीं है; कोड स्वचालित रूप से नोड के मालिक (या लेखक) के रूप में सेट किए गए उपयोगकर्ता को अपडेट और देखने की अनुमति देगा।


5

ऐसा करने के लिए आपको किसी विशेष मॉड्यूल या कस्टम कोड की आवश्यकता नहीं है। बस उन नोड्स को मैनुअल करें, उपयुक्त उपयोगकर्ताओं को नोड्स के मालिक (लेखक) के रूप में सेट करें और इस सामग्री को केवल अपनी सामग्री को संपादित करने के लिए अनुमतियाँ सेट करें (इस प्रकार की किसी भी सामग्री को संपादित नहीं करें) और आप कर रहे हैं।


1

आप जिस बारे में बात कर रहे हैं वह ड्रुपल नोड एक्सेस कंट्रोल है, जो एक बहुत बड़ा विषय है।

नोड एक्सेस कंट्रोल के लिए कोर का बिल्ट-इन सपोर्ट बल्कि कोर्स है, और भूमिका द्वारा नोड को देखने के लिए एक्सेस को नियंत्रित करने के लिए, आपको कुछ प्रकार के नोड एक्सेस कंट्रोल मॉड्यूल का उपयोग करना होगा। Drupal.org पर एक पेज है जो सभी नोड एक्सेस मॉड्यूल को सूचीबद्ध करता है , जिसमें से प्रत्येक का एक कैप्सूल रिव्यू होता है। मेरा सुझाव है कि आप उस पृष्ठ पर एक नज़र डालें कि क्या आप पहुँच को नियंत्रित करने के लिए एक उपयुक्त मॉड्यूल पा सकते हैं।

फ्लेक्सी पहुँच मॉड्यूल मॉड्यूल अपनी आवश्यकताओं के लिए निकटतम मैच है कि, जैसा कि इसके प्रतीत हो रहा है प्राथमिक कार्य आप व्यक्तिगत उपयोगकर्ताओं के लिए पहुँच को नियंत्रित, बल्कि भूमिका से अधिक या उसके वर्गीकरण अवधि से जाने के लिए है।

यह एक छोटा मॉड्यूल है जो आपको अलग-अलग उपयोगकर्ताओं के लिए एसीएल (एक्सेस कंट्रोल लिस्ट) स्थापित करने देता है। यह मूल रूप से ACL मॉड्यूल के लिए एक यूजर इंटरफेस है , इसलिए आपको इसे भी इंस्टॉल करना होगा।

इसमें कंटेंट एक्सेस जैसे अधिक उन्नत एक्सेस कंट्रोल मॉड्यूल की कुछ विशेषताओं का अभाव है , लेकिन यह सक्रिय रूप से बनाए रखा गया है और वर्तमान में इसके जारी कतार में कोई खुले बग नहीं हैं।

प्रकटीकरण: मैं फ्लेक्सी एक्सेस का अनुरक्षक हूं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.