नोड्स तक सीधी पहुंच कैसे प्रतिबंधित करें?


12

नोड्स तक सीधे पहुंच को कैसे प्रतिबंधित करें लेकिन केवल विशेष नोड प्रकार के आवश्यक क्षेत्र तक पहुंचने के लिए विचारों को अनुमति दें?

उदाहरण के लिए दृश्य स्लाइड शो में हम उस छवि क्षेत्र को खिसका रहे हैं जो विशेष नोड प्रकार का है। लेकिन हम नहीं चाहते कि खोज इंजन एक्सेस करें और नोड्स तक पहुंचने के लिए विज़िटर उस नोड प्रकार से संबंधित हों।

कोई सुझाव?

जवाबों:


12

एक सरल उपाय यह होगा कि जिन नोड्स को आप एक्सेस नहीं करना चाहते, उन्हें प्रकाशित न करें। दृश्य अभी भी उन नोड्स से डेटा खींच सकते हैं।


1
बहुत आसान? Simple बहुत सरल उपाय ’जैसी कोई चीज नहीं है। जटिलता अपने आप में एक लक्ष्य नहीं है, क्या यह है? शायद Googletorp का जवाब आपकी विशिष्ट समस्या को हल नहीं करता है, लेकिन उस मामले में आपको अधिक विस्तृत होना चाहिए और समझाएं कि क्यों नहीं।
marcvangend

@marcvangend हालांकि देर हो चुकी है लेकिन मुझे एहसास है कि मेरे सवाल का जवाब नहीं है। आशा है कि कोई एक बेहतर उत्तर जोड़ सकता है
फहद उर रहमान

@ फहद बेहतर उत्तर पाने के लिए, आपको बेहतर प्रश्न पूछने की आवश्यकता है। Googletorp का जवाब मुझे एक अच्छा समाधान लगता है, और upvotes सहमत प्रतीत होते हैं। यदि यह आपकी समस्या का समाधान नहीं करता है, तो सभी प्रासंगिक विवरणों को जोड़ते हुए, अपने प्रश्न को संपादित करें और संपादित करें।
marcvangend

@marcvangend वास्तव में मेरा मुद्दा हल हो गया था और मैंने उत्तर पहले स्वीकार कर लिया था लेकिन आपकी टिप्पणी के आलोक में। Googletorps की बहुत उच्च प्रतिष्ठा है, मुझे कोई फर्क नहीं पड़ता अगर मैं स्वीकार करता हूं या उसका उत्तर स्वीकार नहीं करता हूं। उन्होंने एक उत्कृष्ट वैकल्पिक समाधान प्रदान किया जिसके लिए मैंने भी उन्हें वोट दिया है।
फहद उर रहमान

@ फ़हाद एक उत्तर के द्वारा आप कह रहे हैं: इस उत्तर ने मेरी समस्या हल कर दी। आगंतुकों के आने के लिए यह एक शक्तिशाली कथन है और बहुत उपयोगी है, यह पता लगाने के लिए कि कोई उत्तर उपयोगी है या नहीं। अगर मेरे जवाब से आपकी समस्या हल नहीं हुई है, तो आपको अपने प्रश्न को संपादित करना चाहिए और इस पर कुछ विवरण पोस्ट करना चाहिए कि मेरा समाधान आपके लिए काम क्यों नहीं करता है और जैसे कि marcvangend ने कहा, और अधिक विवरण जोड़ें।
googletorp

3

यदि हम उपयोगकर्ता द्वारा जोड़े गए नोड्स को अप्रकाशित करते हैं, तो वे किसी अन्य उपयोगकर्ता द्वारा संपादन योग्य नहीं होंगे, भले ही उपयोगकर्ता के पास उस सामग्री प्रकार की सामग्री को संपादित करने के अधिकार हों।

प्रतिबंधित नोड पृष्ठ दृश्य विशिष्ट सामग्री प्रकार के किसी भी नोड तक सीधी पहुंच को प्रतिबंधित करने का एक बेहतर तरीका लगता है।

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

http://drupal.org/project/restrict_node_page_view

परियोजना पृष्ठ से:

क्या आपने कभी एक स्लाइड शो नोडोडाइप का उपयोग किया है जिसे आपको प्रकाशित करने की आवश्यकता है, लेकिन नहीं चाहते हैं कि नोड तब तक नोड / एक्सएक्सएक्स पथ का उपयोग करके अपने आप से सुलभ हो? यह मॉड्यूल आपके लिए है!

इस मॉड्यूल के साथ आप नोड पृष्ठों और अनुमतियों के आधार पर नोड पेज (नोड / एक्सएक्सएक्स) तक सीधी पहुंच को अक्षम कर सकते हैं।

मॉड्यूल सक्षम करें और अपनी अनुमतियां कॉन्फ़िगर करना न भूलें।


1

एक अन्य मॉड्यूल जो एक ही काम करते हैं लेकिन अधिक कार्यक्षमता के साथ।

ख़रगोश का बिल

इस प्रोजेक्ट के मेंटेनर मुद्दों में प्रोजेक्ट्स को मर्ज करने के लिए "रिस्ट्रिक्ट नोड पेज व्यू" को मेन्टेनर से पूछते हैं।

"प्रतिबंधित नोड पृष्ठ दृश्य" के विरुद्ध लाभ:

  • नोड पर एक ही मुख्य कार्यक्षमता लेकिन उपयोगकर्ताओं / फ़ाइलों / वर्गीकरण की शर्तों के लिए एक्स्टेंसिबल
  • अपने मॉड्यूल में इस्तेमाल किया जा सकता है
  • सामग्री प्रकार या हर सामग्री पर वैश्विक हो सकता है
  • प्रोजेक्ट पेज पर और देखें ...

"नोड पृष्ठ देखें प्रतिबंधित करें" के खिलाफ नुकसान:

  • अधिक कोड संभवतः संभवतः कम प्रभावी (परीक्षण की आवश्यकता है, साबित नहीं)

1

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

hook_node_access () , node_access ()


0

Https://www.drupal.org/project/restrict_node_page_view से प्रेरित होकर आप स्वयं एक छोटा मॉड्यूल लिख सकते हैं:

/**
 * Implements hook_node_access()
 */
function MYMODULE_node_access($node, $op, $account) {

  // Default checks
  if (!is_object($node)) {
    return NODE_ACCESS_IGNORE;
  }

  $type = is_string($node) ? $node : $node->type;

  if($op == 'view' && arg(0) == 'node' && arg(1) === $node->nid) {

    // Restrict access to full MYTYPE node for anon users
    if ($type == 'MYTYPE' && user_is_anonymous()) {
      return NODE_ACCESS_DENY;
    }
  }
  // Default
  return NODE_ACCESS_IGNORE;
}

इस मॉड्यूल का कुछ साल पहले ही उल्लेख किया गया था। क्या आप बता सकते हैं कि आपका उत्तर विषय में क्या नया लाता है?
Mołot 19:15

@ Mołot - ... अपने आप को एक मॉड्यूल लिखने के लिए। संपादित उत्तर।
लीमैनएक्स

0

नियम मॉड्यूल का उपयोग करके आप एक नियम लागू कर सकते हैं जो इस तरह दिखता है:

{ "rules_check_url" : {
    "LABEL" : "Disallow node/* access",
    "PLUGIN" : "reaction rule",
    "OWNER" : "rules",
    "REQUIRES" : [ "rules" ],
    "ON" : { "init" : [] },
    "IF" : [
      { "text_matches" : {
          "text" : [ "site:current-page:url" ],
          "match" : "node\/\\d+$",
          "operation" : "regex"
        }
      }
    ],
    "DO" : [
      { "drupal_message" : {
          "message" : "Sorry, direct access to URLs like [site:current-page:url] is not allowed around here ...",
          "type" : "error"
        }
      },
      { "redirect" : { "url" : "no_access" } }
    ]
  }
}

उपरोक्त नियम (अभी तक) केवल चयनित भूमिकाओं के लिए "कार्रवाई" को लागू करने के लिए ध्यान में नहीं रखता है (उदाहरण के लिए, ताकि प्रवेश अभी भी इन रास्तों का उपयोग नोड को देखने के लिए कर सकें)। लेकिन नियम मॉड्यूल से परिचित किसी के लिए भी, जो जोड़ने के लिए एक सीधा आगे "स्थिति" है ...

अपनी खुद की साइट में इस नियम के साथ प्रयोग करने के लिए, बस ऊपर दिए गए पूरे नियम कोड को कॉपी करें, और "आयात" फ़ंक्शन के माध्यम से बनाई गई अपनी खुद की साइट में एक नए नियम में पेस्ट करें। फिर इसे अपने वातावरण में फिट करने के लिए संपादित / परिशोधित करें (उदाहरण के लिए "क्षमा करें, ..." संदेश दिखाया जाना चाहिए)।

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