Dodanie nowego użytkownika bezpośrednio w bazie danych

13

Pliki dostałem na stronie Drupal, abym mógł stworzyć nowy motyw. Nie otrzymałem jednak daty użytkownika / hasła administratora Drupala, więc nie mogę zalogować się w obszarze administracyjnym. Czy istnieje sposób, aby utworzyć nowego użytkownika bezpośrednio w bazie danych lub w inny sposób?

Jane
źródło

Odpowiedzi:

10

Możesz utworzyć nowego użytkownika, dodając wiersz do tabeli użytkowników. Pole hasła musi zawierać hasło z hasłem MD5. Możesz korzystać z internetowych generatorów MD5 lub, jeśli korzystasz z PHPMyAdmin, wybierz funkcję MD5 obok pola tekstowego, w którym wpisujesz swoje zwykłe hasło. Zanotuj identyfikator użytkownika (UID) nowo utworzonego użytkownika. Następnie musisz znaleźć rolę, która ma wystarczające uprawnienia w tabeli ról. Znajdź identyfikator roli (rid) i wprowadź identyfikator użytkownika i usuń go w nowym wierszu w tabeli users_roles.

Jeśli nie ma roli, która daje dostęp administratorowi, ponieważ klient robi wszystko z użytkownikiem 1, musisz wykonać nieco brudniejszą sztuczkę. Zapisz gdzieś skrót hasła użytkownika 1 i tymczasowo dodaj nowe hasło dla użytkownika 1. Następnie zaloguj się do użytkownika 1, utwórz nowe konto dla siebie, nową rolę z wystarczającymi uprawnieniami i dodaj się do tej roli. Następnie edytuj użytkownika 1 w bazie danych i przywróć hasło. Mogę polecić rolę administratora, aby wymusić, aby rola miała wszystkie uprawnienia przez cały czas.

Jorrit Schippers
źródło
13

Jest o wiele łatwiejszy sposób.

  1. Wejdź do bazy danych i zmień pole adresu e-mail użytkownika o identyfikatorze 1 i ustaw je na swój adres e-mail.
  2. Przejdź do http://mysite/useri kliknij link odzyskiwania hasła.
  3. Wpisz swój adres e-mail, a otrzymasz link do odzyskiwania hasła.

Oczywiście zakłada to, że twój system deweloperski pozwala drupalowi wysyłać maile po wyjęciu z pudełka. Odnosi się to do większości urządzeń z Linuxem i OSX, ale nie do Windows.

BetaRide
źródło
1
To jest naprawdę łatwiejsze. Po wykonaniu tej operacji PO może utworzyć nowego użytkownika i cofnąć wiadomość e-mail dla użytkownika nr 1, tak jak to było wcześniej, jeśli jest to naprawdę konieczne.
kiamlaluno
Jeszcze łatwiej byłoby użyć drush ulido zalogowania się jako użytkownik 1.
mbomb007,
9

Możesz także tworzyć użytkowników i przypisywać role za pomocą Drush , a także zmieniać hasła dla istniejących użytkowników.

Drush jest powłoką wiersza poleceń i interfejsem skryptowym dla Drupala, prawdziwego szwajcarskiego noża wojskowego, zaprojektowanego, aby ułatwić życie tym z nas, którzy spędzają kilka godzin pracy na hakowaniu wiersza poleceń.

mpdonadio
źródło
1
drush help uli
Drupac
2
$user = array();
$user['status'] = 1; //for active user
$user['mail'] = '[email protected]';
//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;
}

Wypróbuj powyższy kod.

Satya
źródło
Dzięki - głupie pytanie: w jakim pliku chciałbym umieścić ten kod?
Jane
2

Jeśli zdarzy ci się używać drush , możesz użyć tego, drush upwd [user] --password="[newpassword]" który (re) ustawia hasło dla użytkownika o określonej nazwie. ( upwdto krótka wersja polecenia dla user-password)

Przykład z drush: drush user-password someuser --password="correct horse battery staple" który ustawia określone hasło dla nazwy użytkownika „someuser”.

baikho
źródło
1

Możesz przejść do bazy danych, zapisać stare hasło administratora, zresetować hasło administratora, a następnie zalogować się, utworzyć nowego użytkownika, a następnie zresetować hasło administratora z powrotem do tego, co było przed rozpoczęciem.

Jeśli masz dostęp do drush, możesz to zrobić:

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

następnie weź wygenerowane wyżej hasło MD5 i:

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

To powinno wystarczyć.

( źródło )

EddieN120
źródło