मेरे पास एक ही मुद्दा है (इसलिए मैंने एक इनाम शुरू किया है)।
मैंने इसे इस तरह हल किया।
मैंने एक कस्टम मॉड्यूल में एक फ़ंक्शन जोड़ा। आप दो फ़ाइलों के साथ / साइटों / सभी / मॉड्यूल में एक नया फ़ोल्डर बनाकर अपने खुद के मॉड्यूल को सरल बना सकते हैं:
yourname_module.info - >>
name = "Custom Functions"
description = "Allows execution of custom code for the website"
core = 7.x
package = "yourname_customs"
version = 7.x-1.x
yourname.module
<?php
function yourname_add_role_to_user($uid, $role_name) {
$user = user_load($uid);
if ($user === false || !isset($user->uid) || !is_array($user->roles)) {
//Display an ugly error when user is not set correctly
exit('$user is not set correctly <pre>' . print_r($user, true) . "</pre>");
}
//Get the user roles
$roles = user_roles(TRUE);
$rid = array_search($role_name, $roles);
if ($rid != FALSE) {
$new_role[$rid] = $role_name;
// Add new role to existing roles.
$all_roles = $user->roles + $new_role;
//Delete all user roles from DB
db_delete('users_roles')
->condition('uid', $user->uid)
->execute();
//Insert all user roles in DB
$query = db_insert('users_roles')->fields(array('uid', 'rid'));
foreach (array_keys($all_roles) as $rid) {
if (!in_array($rid, array(DRUPAL_ANONYMOUS_RID, DRUPAL_AUTHENTICATED_RID))) {
$query->values(array(
'uid' => $user->uid,
'rid' => $rid,
));
}
}
$query->execute();
} else {
//Display an ugly error wen role not found
exit("Could not find role " . htmlspecialchars($role_name) . "<br/>
Vald roles: <pre>" . print_r($roles, true) . "</pre>");
}
}
फिर अपने मॉड्यूल प्राप्त करें और "कस्टम फ़ंक्शंस" को सक्षम करें।
सुनिश्चित करें कि आपके पास मॉड्यूल कस्टम php कोड सक्षम है।
फिर कार्रवाई के बजाय नियम में उपयोगकर्ता को जोड़ने के लिए, जोड़ें: कस्टम php कोड चलाएं और दर्ज करें:
yourname_add_role_to_user($account->uid, "Members");
header("Location: /admin/people");
exit;
यह उपयोगकर्ता को भूमिका में जोड़ता है, और स्क्रिप्ट को रोकता है। यदि आप स्क्रिप्ट बंद नहीं करते हैं, तो भूमिका सहेजी नहीं गई है। और मुझे एक मॉड्यूल जोड़ने की आवश्यकता थी क्योंकि user_save
निष्पादित होने पर काम नहीं करता है custom php code
।
तो, मुझे पता है कि यह बहुत बदसूरत है, लेकिन यह मेरे लिए काम करता है।