Crear usuarios Drupal 6.x dinámicamente
La siguiente función para generar usuarios "on the fly" puede servir, por ejemplo, para crear usuarios en Drupal 6.x a partir de datos dados en una URL, aunque tiene muchos posibles usos. Yo lo utilizo para la creación de usuarios desde procedencias externas. El código se puede extender de modo que una de esas variables indique la procedencia y se almacene en el perfil del usuario, por ejemplo, para calcular distintos descuentos o permisos. Visto en Jayboodhun
<?php /** * Date dd/mm/yyyy * Creates a user with profile values. * * @param $data * $_POST data for example. * * @return * $user Object. */ function my_module_create_user($data) { // Drupal User module function that generates MD5 hash password $pass = user_password(); 'name' => $data['name'], 'mail' => $data['mail'], 'status' => 1, // Sets user as Active 'pass' => $pass ); $auto_user = user_save('', $newuser); $rid = 4; // Assign Role ID $uid = $auto_user->uid; db_query('INSERT INTO {users_roles} (uid, rid) VALUES (%d, %d)', $uid, $rid); // Populates profile values 'firstname' => $data['firstname'], 'lastname' => $data['lastname'], 'company' => $data['company'], 'address' => $data['address'], 'city' => $data['city'], 'state' => $data['state'], 'country' => $data['country'], 'phone' => $data['phone'], ); // Adds details under Personal Information Category set in Profile profile_save_profile($profile, $auto_user, 'Personal Information'); // Load the new user Object global $user; $user = $account; drupal_set_message(t('You have been authenticated')); sess_regenerate(); // Finally send an Email /* * Mail templates available: * register_no_approval_required * register_admin_created * register_pending_approval - Need to set Status above as 0 if this option is required */ drupal_mail('user', 'register_no_approval_required', variable_get('site_mail', ini_get('sendmail_from')), language_default(), $params); // Set the redirection to where you want drupal_goto('home'); } ?>


(3 votes, average: 3.67 out of 5)