संपादक उपयोगकर्ता को केवल एक विशिष्ट भाषा में सामग्री संपादित करने के लिए प्रतिबंधित करें


15

मैं संपादकों के लिए एक भूमिका बनाने की कोशिश कर रहा हूं जहां एक संपादक के पास केवल अंग्रेजी सामग्री को संपादित करने की पहुंच है और दूसरे में केवल दूसरी भाषा में सामग्री तक पहुंच है।

मैं काफी समय से शोध कर रहा हूं, कंटेंट एक्सेस की भी जांच की है, लेकिन मुझे कोई हल नहीं मिला है।

मैं यह कैसे कर सकता हूं?

धन्यवाद!


Drupal.stackexchange.com/questions/130741/… का डुप्लिकेट लगता है ।
सुमित मदन

1
मुझे नहीं लगता कि यह है, क्योंकि मेरी समस्या सिर्फ अनुवाद के साथ नहीं है। यह अलग से भी नोड्स बनाने और संपादित करने की अनुमति है।
बैलिंट डेकी

ओह .. ठीक है। समझ गया।
सुमित मदन

1
drupal.org/project/i18n_access आप अपनी आवश्यकता के अनुसार, इसे आजमा सकते हैं
बाला

जवाबों:


2

यहाँ निर्दिष्ट उत्तर आपको अनुवाद-अनुमति-से-एक-विशिष्ट-भाषा देने में मदद करेगा

अनुवाद प्रबंधन मॉड्यूल स्थापित करने के बाद ,

आप उपयोगकर्ताओं को उनकी अनुवाद क्षमताओं के साथ बना सकते हैं

आप यह निर्दिष्ट कर सकते हैं कि एक उपयोगकर्ता केवल अंग्रेजी से स्पेनिश में अनुवाद कर सकता है और दूसरा उपयोगकर्ता उपयोगकर्ता का निर्माण करते समय अंग्रेजी से फ्रेंच में अनुवाद कर सकता है

  • उपयोगकर्ता भूमिका के साथ एक नया उपयोगकर्ता बनाएं : अनुवादक (जो tmgt moduleस्थापित होने पर बनाया गया है)

  • फिर नीचे दिखाए अनुसार उसका अनुवाद कौशल चुनें:

यहाँ छवि विवरण दर्ज करें


1
इस मामले में, मुझे उपयोगकर्ताओं को किसी विशिष्ट भाषा की सामग्री बनाने / संपादित करने के लिए अनुमतियों की आवश्यकता होगी, जैसे कि मैंने वर्णित किया, यह अनुवाद के लिए नहीं है।
बैलिंट डेकी


0

आप हुक_ का उपयोग करके कॉल कॉल को बदल सकते हैं या बदल सकते हैं ।

आपकी उपलब्ध भाषाओं के आधार पर अनुमति स्क्रीन में दिखाई देने वाली अनुमति बनाने के लिए आपको इस हुक के साथ कस्टम मॉड्यूल की आवश्यकता होगी:

/**
 * Implements hook_permission().
 */
function MODULENAME_permission(){

  //do something here to get an array of language names: $languages (I'm not familiar with i18n)

  foreach ($languages as $lang) {
    $permissions[$term->name] = array(
      'title' => t($lang->name), //Or wherever the langauge name is stored
      'description' => t('Edit content in '. $lang->name), //Again, adjust as needed
    );
  }

  return $permissions;
}

यह साइट पर प्रत्येक भाषा के लिए आपके मॉड्यूल नाम के तहत अनुमति पृष्ठ में एक टिक बॉक्स लगाएगा। मैं यह मानने जा रहा हूं कि भाषा के नाम उस स्थिति में नहीं बदलते हैं जिस स्थिति में यह करना सुरक्षित है।

यदि उपयोगकर्ता को इस तरह की अनुमति नहीं है, तो आपको उन्हें एक्सेस ब्लॉक करने के लिए उपयोग करने की आवश्यकता है:

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

  //Get the language name for the node and store in variable $lang (again, I don't know how)

  //Then see if the user can do anything except view it
  if ($op != 'view'){
    if (!user_access($lang)){
      return NODE_ACCESS_DENY;
    }
  }

  return NODE_ACCESS_IGNORE;
}

ध्यान दें, इस तरह से करने पर, भूमिका को 'नोड्स की अनुमति' और किसी भी नोड को संपादित करने के लिए भाषा आधारित अनुमति की आवश्यकता होगी।


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