নোডগুলিতে সরাসরি অ্যাক্সেসকে কীভাবে সীমাবদ্ধ করবেন?


12

কীভাবে নোডগুলিতে সরাসরি অ্যাক্সেসকে সীমাবদ্ধ করবেন তবে কেবলমাত্র নোড প্রকারের প্রয়োজনীয় ক্ষেত্রটিতে দর্শনগুলি অনুমতি দেবে?

উদাহরণস্বরূপ দৃশ্যের স্লাইডশোতে আমরা চিত্রের ক্ষেত্রটি স্লাইড করছি যা নির্দিষ্ট নোডের সাথে সম্পর্কিত। তবে আমরা অনুসন্ধান ইঞ্জিনগুলি অ্যাক্সেস করতে চাই না এবং দর্শকদের সেই নোড ধরণের অন্তর্ভুক্ত নোডগুলি অ্যাক্সেস করতে পারি।

কোন পরামর্শ?

উত্তর:


12

একটি সহজ সমাধান হ'ল আপনি যে নোডগুলি অ্যাক্সেসযোগ্য হতে চান না তা প্রকাশ না করা। দৃশ্যগুলি এখনও সেই নোডগুলি থেকে ডেটা টানতে পারে।


1
খুবই সহজ? 'খুব সাধারণ সমাধান' বলে কোনও জিনিস নেই। জটিলতা নিজের মধ্যে লক্ষ্য নয়, তাই না? সম্ভবত গুগলরটার্পের উত্তরটি আপনার নির্দিষ্ট সমস্যাটিকে সমাধান করতে পারে না তবে সেই ক্ষেত্রে আপনাকে আরও বিস্তৃত হতে হবে এবং কেন নয় তা ব্যাখ্যা করতে হবে।
মার্চভ্যানেজেন্ড

@ মার্কভেনজেন্ড যদিও দেরি হয়েছে তবে আমি বুঝতে পেরেছি যে এটি আমার প্রশ্নের উত্তর নয়। আশা করি কেউ আরও ভাল উত্তর যুক্ত করতে পারেন
ফাহাদ উর রেহমান

@ ফাহাদ আরও ভাল উত্তর পেতে আপনার আরও ভাল প্রশ্ন জিজ্ঞাসা করা উচিত। গুগল্টরপের উত্তরটি আমার কাছে ভাল সমাধানের মতো বলে মনে হচ্ছে এবং আপোভোটগুলি একমত বলে মনে হচ্ছে। যদি এটি আপনার সমস্যার সমাধান না করে তবে সমস্ত প্রাসঙ্গিক বিবরণ যুক্ত করে আপনার প্রশ্নটি প্রবেশ করুন এবং সম্পাদনা করুন।
মার্চভ্যানেজেন্ড

@ মার্কভেনজেন্ড আসলে আমার সমস্যাটি সমাধান হয়ে গেছে এবং আমি উত্তরটি আগেই গ্রহণ করেছি তবে আপনার মন্তব্যের আলোকে। গুগলটোরপসের খুব উচ্চ খ্যাতি রয়েছে, আমি যদি তার উত্তর গ্রহণ করি বা না মানি তবে কোনও পার্থক্য পাবেন না। তিনি একটি দুর্দান্ত বিকল্প সমাধান দিয়েছেন যার জন্য আমি তাকে ভোট দিয়েছি।
ফাহাদ উর রেহমান

@ ফাহাদ ধারণার দ্বারা একটি উত্তর আপনি বলছেন: এই উত্তরটি আমার সমস্যার সমাধান করেছে। এটি একটি শক্তিশালী বিবৃতি এবং দর্শকদের জন্য আসা খুব দরকারী, উত্তরটি কার্যকর কিনা না তা খুঁজে বের করতে। যদি আমার উত্তরটি আপনার সমস্যার সমাধান না করে, তবে আপনার প্রশ্নটি সম্পাদনা করা উচিত এবং আমার সমাধানটি আপনার পক্ষে কেন কাজ করে না এবং মার্কাভেন্ড্যান্ডের মত, আরও বিশদ যুক্ত করুন on
googletorp

3

যদি আমরা ব্যবহারকারীর দ্বারা যুক্ত নোডগুলি অপ্রকাশিত করি তবে তারা অন্য কোনও ব্যবহারকারীর দ্বারা সম্পাদনাযোগ্য হবে না এমনকি যদি সেই সামগ্রীর ধরণের বিষয়বস্তু সম্পাদনা করার ব্যবহারকারীর অধিকার থাকে have

সীমাবদ্ধ নোড পৃষ্ঠাগুলি নির্দিষ্ট সামগ্রীর ধরণের যে কোনও নোডের সরাসরি অ্যাক্সেসকে সীমাবদ্ধ করার একটি ভাল উপায় বলে মনে হয়।

ব্যবহারও মোটামুটি সহজ আপনার কেবলমাত্র এই মডিউলটি সক্ষম করতে এবং স্বাভাবিক হিসাবে সরাসরি অ্যাক্সেসযোগ্য নোডগুলির জন্য অনুমতিগুলি কনফিগার করতে হবে।

http://drupal.org/project/restrict_node_page_view

প্রকল্প পৃষ্ঠা থেকে:

আপনি কি কখনও স্লাইডশো নোডাইটাইপ ব্যবহার করেছেন যা আপনাকে প্রকাশ করা দরকার তবে নোড / এক্সএক্সএক্সএক্সএক্সএক্স পাথ ব্যবহার করে নোড নিজেই অ্যাক্সেসযোগ্য হতে চান না? এই মডিউলটি আপনার জন্য!

এই মডিউলটির সাহায্যে আপনি নোডিটপগুলি এবং অনুমতিগুলির ভিত্তিতে নোড পৃষ্ঠাগুলিতে (নোড / এক্সএক্সএক্স) সরাসরি অ্যাক্সেস অক্ষম করতে পারেন।

মডিউল সক্ষম করুন এবং আপনার অনুমতি কনফিগার করতে ভুলবেন না।


1

অন্য একটি মডিউল যারা একই কাজ করে তবে আরও কার্যকারিতা সহ।

খরগোশের গর্ত

এই প্রকল্পের রক্ষণাবেক্ষণকারীরা সমস্যাগুলিতে প্রকল্পগুলিকে একীভূত করতে রক্ষণাবেক্ষণকারীকে "নোড পৃষ্ঠা ভিউ সীমাবদ্ধ করুন" বলুন।

"সীমাবদ্ধ নোড পৃষ্ঠা দেখুন" এর বিরুদ্ধে সুবিধা:

  • নোডে একই মূল কার্যকারিতা কিন্তু ব্যবহারকারী / ফাইল / শ্রমশক্তি শর্তাদির পক্ষে এক্সটেনসিবল
  • আপনার মডিউল ব্যবহার করা যেতে পারে
  • সামগ্রীর ধরণের বা প্রতিটি সামগ্রীতে বিশ্বব্যাপী হতে পারে
  • প্রকল্প পৃষ্ঠায় আরও দেখুন ...

"সীমাবদ্ধ নোড পৃষ্ঠা দেখুন" এর বিরুদ্ধে অসুবিধা:

  • আরও কোডগুলি সম্ভবত কম কার্যকর (পরীক্ষার প্রয়োজন, প্রমাণিত হয়নি)

1

আপনার ব্যবহার করা উচিত 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;
}

এই মডিউলটি ইতিমধ্যে কয়েক বছর আগে উল্লেখ করা হয়েছিল। আপনার উত্তরটি বিষয়টিতে কী নতুন এনেছে তা আপনি ব্যাখ্যা করতে পারেন?
মোআট

@ মওট - ... নিজেই একটি মডিউল লিখতে। সম্পাদিত উত্তর।
leymannx

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" } }
    ]
  }
}

উপরের নিয়মটি (এখনও) কেবলমাত্র নির্বাচিত ভূমিকার জন্য "ক্রিয়া" প্রয়োগ করতে বিবেচনা করে না (উদাহরণস্বরূপ যাতে প্রশাসকরা এখনও কোনও নোড দেখতে এই পাথগুলি ব্যবহার করতে পারেন)। তবে যে কেউ কারও জন্য রুলস মডিউলটির সাথে কিছুটা পরিচিত, এটি যুক্ত করার জন্য সরাসরি এগিয়ে যাওয়া "শর্ত" ...

আপনার নিজের সাইটে এই নিয়মটি নিয়ে পরীক্ষা-নিরীক্ষার জন্য, কেবলমাত্র উপরের পুরো বিধি কোডটি অনুলিপি করুন এবং এটি "আমদানি" ফাংশনের মাধ্যমে তৈরি করা আপনার নিজের সাইটে একটি নতুন নিয়মে পেস্ট করুন। তারপরে এটিকে আপনার নিজের পরিবেশে ফিট করার জন্য আরও সম্পাদনা / পরিমার্জন করুন (যেমন "দুঃখিত, ..." বার্তাটি দেখানো হবে))

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.