मुझे रोल नाम से रोल आईडी कैसे मिलेगी?


17

लॉग इन पर मैं किसी उपयोगकर्ता के लिए तृतीय पक्ष डेटा स्रोत (db में तालिका) की जांच करना चाहता हूं, और यदि मुझे पता है कि मैं उस उपयोगकर्ता की भूमिका जोड़ना चाहता हूं।

मैं भूमिका से छुटकारा का अनुमान नहीं लगाना चाहता, मैं इसे भूमिका के नाम से प्राप्त करना चाहता हूं।

जवाबों:


20

यह काफी के साथ सीधा है () user_roles और array_search () । नीचे एक फ़ंक्शन है जो नाम और FALSE मिलान करने वाली भूमिका होने पर रोल आईडी लौटाएगा अन्यथा।

function get_role_by_name($name) {
  $roles = user_roles();
  return array_search($name, $roles);
}

// Sample usage
$rid = get_role_by_name('administrator');

एक लाइनर होगा:

$rid = array_search('administrator', user_roles());

1
क्वेरी द्वारा निष्पादित user_roles () टैग है अनुवाद , एक मॉड्यूल भूमिका नाम उसका अनुवाद कर सकें, जिसका मतलब है। Drupal केवल डिफ़ॉल्ट भूमिकाओं (यानी अनाम उपयोगकर्ता और प्रमाणित उपयोगकर्ता) के लिए भूमिका नामों का अनुवाद करता है।
kiamlaluno

32

भूमिका के मशीन नाम को जानने के बाद, यह उपयोग करने के लिए पर्याप्त है user_role_load_by_name()

if ($role = user_role_load_by_name('Role Name')) {
  // The role ID is in $role->rid.
}

यदि भूमिका मौजूद नहीं हो सकती है ...

$role = user_role_load_by_name('Role Name');

$role_id = $role ? $role->rid : NULL;

3
मैं इस दृष्टिकोण को पसंद करता हूं, जैसा कि अन्य दृष्टिकोण के साथ भूमिका नाम का अनुवाद किया जा सकता है। वास्तव में, user_roles () द्वारा निष्पादित क्वेरी को अनुवाद योग्य टैग किया जाता है । Drupal केवल डिफ़ॉल्ट भूमिकाओं के लिए नामों का अनुवाद करता है, लेकिन एक मॉड्यूल अन्य भूमिका नामों का भी अनुवाद कर सकता है।
kiamlaluno

4
$ छुटकारा = ($ भूमिका = user_role_load_by_name ())? $ भूमिका-> छुटकारा: NULL;
पियरे ब्यूले

-2

भूमिका और उसकी आईडी की पहचान करने का सबसे अच्छा तरीका एसक्यूएल है। इस क्वेरी को अपने SQL संपादक में चलाएँ।

select * from roles;

और आपको आईडी और वजन सहित रोल्स की सूची मिल जाएगी।


1
सबसे अच्छा तरीका Drupal द्वारा प्रदान की गई API का उपयोग करना है। डेटाबेस में सीधे प्रवेश करना, जब एक एपीआई है, तो कभी भी एक अच्छा विचार नहीं है, न ही सबसे अच्छा तरीका है।
kiamlaluno

यह भूमिकाओं को पाने का एक बहुत ही आसान तरीका है! मुझे आश्चर्य नहीं है कि द्रुपाल स्टैक एक्सचेंज पुलिस ने इस तरह के एक सरल समाधान को वोट दिया।
गोरास्वान
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.