Aggiunta di un nuovo utente direttamente nel database


13

Mi sono stati dati i file su un sito Drupal in modo da poter creare un nuovo tema. Tuttavia, non mi è stata data la data utente / password dell'amministratore di Drupal, quindi non posso accedere all'area di amministrazione. C'è un modo per creare un nuovo utente direttamente nel database o in qualche altro modo?

Risposte:


10

È possibile creare un nuovo utente aggiungendo una riga alla tabella degli utenti. Il campo password deve contenere una password con hash MD5. È possibile utilizzare generatori MD5 online o, se si utilizza PHPMyAdmin, selezionare la funzione MD5 accanto alla casella di testo in cui immettere la password semplice. Prendi nota dell'ID utente (uid) dell'utente appena creato. Successivamente, è necessario trovare un ruolo con autorizzazioni sufficienti nella tabella dei ruoli. Trova l'ID ruolo (rid) e inserisci l'UID e riduci in una nuova riga nella tabella users_roles.

Se non esiste alcun ruolo che dia accesso all'amministratore, poiché il client fa tutto con l'utente 1, è necessario eseguire un trucco leggermente più sporco. Salvare l'hash della password dell'utente 1 da qualche parte e aggiungere temporaneamente una nuova password per l'utente 1. Quindi accedere con l'utente 1, creare un nuovo account per se stessi, un nuovo ruolo con autorizzazioni sufficienti e aggiungersi a tale ruolo. Successivamente, modifica l'utente 1 nel database e ripristina la password. Posso consigliare il ruolo di amministratore per forzare un ruolo ad avere tutte le autorizzazioni in ogni momento.


13

C'è un modo molto più semplice.

  1. Accedi al DB e modifica il campo dell'indirizzo e-mail dell'utente con ID 1 e impostalo sul tuo indirizzo e-mail.
  2. Vai a http://mysite/usere fai clic sul link per il recupero della password.
  3. Inserisci il tuo indirizzo e-mail e otterrai un link per il recupero della password.

Naturalmente questo presuppone che i sistemi di sviluppo consentano a drupal di inviare e-mail immediatamente. Questo è vero per la maggior parte dei box Linux e OSX ma non per Windows.


1
Questo è davvero più semplice Una volta fatto, l'OP può creare un nuovo utente e ripristinare l'e-mail per l'utente n. 1 come era prima, se è davvero necessario.
kiamlaluno

Ancora più semplice sarebbe usare drush uliper accedere come utente 1.
mbomb007

9

Puoi anche creare utenti e assegnare ruoli con Drush , nonché modificare le password per gli utenti esistenti.

Drush è una shell della riga di comando e un'interfaccia di scripting per Drupal, un vero coltellino svizzero progettato per rendere la vita più facile a quelli di noi che trascorrono alcune delle nostre ore di lavoro a scappare al prompt dei comandi.


1
drush help uli
Drupac,


2
$user = array();
$user['status'] = 1; //for active user
$user['mail'] = 'test@test.com';
//profile field $user['profile_field_fname'] = 'Vikrant';
$user_account = array();
if($user_uid = module_name_get_uid_by_email($user['mail'])) { //It will use for update.
   $user_account = user_load(array(uid => $user_uid));
}

//save or update user information.
user_save($user_account, $user);

//Check existing record by email.
function module_name_get_uid_by_email($email){
   $query = db_query("SELECT uid FROM {users} WHERE mail = '%s'",$email);
   $result = db_fetch_object($query);
   return $result->uid;
}

Prova il codice sopra.


Grazie - domanda stupida: in quale file inserirò questo codice?
Jane,

2

Se ti capita di usare drush puoi usare drush upwd [user] --password="[newpassword]" quale (ri) impostare la password per l'utente con il nome specificato. ( upwdè la versione del comando breve per user-password)

Esempio da drush: drush user-password someuser --password="correct horse battery staple" che imposta la password specificata per il nome utente "someuser".


1

Quello che potresti fare è andare nel database, salvare la vecchia password dell'amministratore, reimpostare la password dell'amministratore e quindi accedere, creare un nuovo utente e quindi reimpostare la password dell'amministratore su quello che era prima di iniziare.

Se hai accesso a Drush, puoi farlo:

cd <drupal root directory>
php scripts/password-hash.sh 'drupal'

quindi prendi la password hash MD5 generata sopra e:

drush sql-cli
update users set name='admin', pass='pasted_big_hash_from_above' where uid=1;
quit

Questo dovrebbe fare il trucco.

( fonte )

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.