অ-লেখকের জন্য "অপ্রকাশিত সামগ্রী দেখুন" অনুমতি


18

লগ-ইন করা (তবে প্রশাসনিক নয়) ব্যবহারকারী অপ্রকাশিত সামগ্রী (সিএসএস নোড-অপ্রকাশিত শ্রেণীর সাথে চিহ্নিত) দেখতে দেওয়ার অনুমতি-স্তরের উপায় আছে কিনা তা দেখার জন্য আমি কিছুটা গুগল করেছিলাম। এটি কেবলমাত্র ড্রুপাল 8 এর জন্য নির্ধারিত বলে মনে হচ্ছে। তবে কেউ কি যথেষ্ট পরিমাণে কাজ করার মতো চালাক ছিল?

আমার একটি ভূমিকা রয়েছে যার নাম Content Editorলেখক কিনা তা নির্বিশেষে সমস্ত অপ্রকাশিত সামগ্রী দেখতে সক্ষম হওয়া উচিত।

উত্তর:


17

আপনি একটি সমন্বয় ব্যবহার করতে পারে তুমি ঠিক একটি খুব ছোট কাস্টম মডিউল লেখা যদি hook_permission()এবং hook_node_access()এই কাজ করতে:

function MYMODULE_permission() {
  return array(
    'unconditionally view unpublished content' => array(
      'title' => t('Unconditionally View Unpublished Content'),
      'restrict access' => TRUE
    )
  );
}

function MYMODULE_node_access($node, $op, $account) {
  // We're only bothered about the 'view' operation at the moment
  if ($op == 'view') {
    // If the user has access to our new permission, let 'em at it
    if (user_access('unconditionally view unpublished content', $account)) {
      return NODE_ACCESS_ALLOW;
    }
  }

  // For everything else let the system decide.
  return NODE_ACCESS_IGNORE;
}

আপনি যে নতুন ভূমিকার জন্য নতুন অনুমতিটি অর্পণ করেছেন তা এখন কোনও নোড দেখতে সক্ষম হবে, তা প্রকাশিত হোক বা না হোক তা নির্বিশেষে।


সুরক্ষাটিকে কিছুটা শক্তিশালী করার জন্য যদিও আমি যুক্ত && user_access('administer nodes')করেছি যাতে এটি সামগ্রী তৈরির অধিকারের উপর নির্ভর করে। এখন এটি "শর্তহীন" নয়। উদাহরণের জন্য ধন্যবাদ!
আর্তুর

হ্যাঁ, আমার উল্লেখ করা উচিত ছিল আপনি কিছুটা 'গোমাংস' বানাতে চাইতে পারেন :) সাহায্য করে খুশি
ক্লাইভ

দুর্দান্ত জিনিস আবার, ক্লাইভ। এটি আমার একটি সমস্যা সমাধান করে সেইসাথে একটি নির্দিষ্ট ট্যাক্সনোমি শব্দ সহ নোডগুলিতে অ্যাক্সেসকে সীমাবদ্ধ রাখে !!!
uwe

1
কোডটি হ'ল "নিঃশর্তভাবে কোনও সামগ্রী দেখুন"। এটি কখনই নোড প্রকাশিত হয়েছে কিনা তা যাচাই করে না। বা ভূমিকাটির ক্ষেত্রে প্রথমে সামগ্রীটি দেখার অনুমতি থাকলে।
JM01

6

আমি প্রথমে উপরের কোডটি চেষ্টা করেছিলাম, যা দুর্দান্ত। কিন্তু কোনও ভূমিকার অপ্রকাশিত সামগ্রীকে অধিকার দেওয়ার পরে, সেই ভূমিকাটি এখনও দেখাতে অপ্রকাশিত সামগ্রী দেখতে পেল না এবং এটি কিছু সম্পাদকের ভূমিকাতে খুব কার্যকর হতে পারে ...

আমি মডিউলটি ভিউ_অনপ্রকাশিত ব্যবহার করে এটি সমাধান করেছি ।


আমি এই প্লাগইনটি ইনস্টল করেছি এবং আমার সমস্যা সমাধানের পরিবর্তে, আমার তৈরি কাস্টম প্রশাসনিক গোষ্ঠীর জন্য এটি সমস্ত সামগ্রী প্রদর্শন করে না made
মোহাম্মদ সালাম 14

আচ্ছা আমি দুঃখিত আপনার সাথে এমন আচরণ হয়েছিল। আমি এটি কিছুক্ষণের জন্য ব্যবহার করে আসছি এবং কোনও ভূমিকায় কখনও এরকম পিবি ছিল না (যদি আপনি বোঝাচ্ছেন যে আপনার প্রশাসনিক গোষ্ঠী একটি ভূমিকা রয়েছে)। আপনি তখন ডিওতে ইস্যুতে পোস্ট করতে পারেন ।
কোজো

3

আমি এটির জন্য পুনর্বিবেচনা মডিউলটি ব্যবহার করি । ইনস্টলেশন শেষে, এটি প্রতিটি সামগ্রীর ধরণের জন্য নিম্নলিখিত অনুমতিগুলি তৈরি করে:

  • সামগ্রীর ধরণ : নিজের সামগ্রীর পুনর্বিবেচনাগুলি দেখুন

  • বিষয়বস্তুর প্রকার : কারও সামগ্রীর পুনর্বিবেচনাগুলি দেখুন

  • বিষয়বস্তুর প্রকার : নিজস্ব সামগ্রীর সংশোধনী প্রকাশ করুন

  • বিষয়বস্তুর প্রকার : কারও সামগ্রীর সংশোধনী প্রকাশ করুন

আমার সম্পাদকদের কারও সামগ্রীর সংশোধন দেখার অনুমতি দিয়ে, তারা অন্য ব্যবহারকারীদের দ্বারা তৈরি বা সংশোধিত সমস্ত নোড অ্যাক্সেস করতে এবং প্রকাশ করতে সক্ষম হয়।


1

এটিই আমি শেষ করেছিলাম ...

এটি প্রতিটি নোড প্রকারের জন্য 'কোনও সামগ্রীর অনুমতি দেখুন' তৈরি করে। এটি নোড মডিউলটি যা করে তা অনেকটা একই, তবে অতিরিক্ত বিকল্প যুক্ত করে।

/**
 * Implements hook_permission().
 */
function MODULE_permission() {
  $perms = array();
  foreach (node_permissions_get_configured_types() as $type) {
    $info = node_type_get_type($type);
    $perms += array(
      "view $type content" => array(
        'title' => t('%type_name: View any content', array('%type_name' => $info->name)),
      )
    );
  }
  return $perms;
}

/**
 * Implements hook_node_access().
 */
function MODULE_node_access($node, $op, $account) {
  $type = is_string($node) ? $node : $node->type;

  if (in_array($type, node_permissions_get_configured_types())) {
    if ($op == 'view' && user_access('view ' . $type . ' content', $account)) {
      return NODE_ACCESS_ALLOW;
    }
  }

  return NODE_ACCESS_IGNORE;
}

1

এর জন্য ড্রুপাল 7 এবং ড্রুপাল 8 এর জন্য একটি মডিউল রয়েছে:

View_unpublished

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


0

অফিসিয়াল প্রশাসনিক গাইডকে উল্লেখ করে : https://drupal.org/node/1106606 মডিউল ভিউ_প্রকাশিত কোজোর প্রস্তাবিত একটি দ্রুত এবং সহজ সমাধান।


0

একটি সাধারণ, যুক্তিসঙ্গত কাজটি হ'ল নোডগুলিতে 'প্রচারের প্রতিমুখে' পতাকা ব্যবহার করা।

যদি এই পতাকাটির জন্য অন্য কোনও ব্যবহার না থাকে তবে 'সম্মুখ পৃষ্ঠায় প্রচারিত' এ আপনার দর্শনগুলি ফিল্টার করুন। আপনার কন্টেন্ট এডিটররা নোডের প্রচারের আগে এটিতে কাজ করতে পারেন (সরাসরি লিঙ্ক ব্যবহার করে)। তবে এটি এখনও সম্ভাব্যভাবে সাইট দর্শকদের কাছে উপস্থিত হবে না।

আমরা ইউটিউবের 'তালিকাভুক্ত ভিডিও' পদ্ধতির কাছ থেকে সেই অনুপ্রেরণা পেয়েছি।


0

আপনি শুধুমাত্র একটি দৃশ্য বিষয়বস্তু, নিষ্ক্রিয় দেখতে প্রয়োজন তাহলে SQL rewritingমধ্যে Query Settingsঅধীনে Otherদেখেছে UI 'তে হবে।

এটি আমার পক্ষে কাজ করে যেহেতু আমি কেবল ব্যবহারকারীরা অপ্রকাশিত সামগ্রীকেই ফ্লেগ করতে সক্ষম হতে চাই।

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