Menambahkan pengguna baru secara langsung dalam database

13

Saya telah diberikan file ke situs Drupal sehingga saya dapat membuat tema baru. Namun saya belum diberi tanggal pengguna / kata sandi admin Drupal sehingga saya tidak bisa masuk ke area admin. Apakah ada cara saya bisa membuat pengguna baru secara langsung dalam database atau cara lain?

Jane
sumber

Jawaban:

10

Anda dapat membuat pengguna baru dengan menambahkan baris ke tabel pengguna. Kolom kata sandi harus berisi kata sandi hash MD5. Anda dapat menggunakan generator MD5 online atau, jika Anda menggunakan PHPMyAdmin, pilih fungsi MD5 di sebelah kotak teks tempat Anda memasukkan kata sandi Anda. Perhatikan id pengguna (uid) dari pengguna Anda yang baru dibuat. Setelah itu, Anda perlu menemukan peran yang memiliki izin yang memadai di tabel peran. Temukan id peran (rid) dan masukkan uid dan hapus di baris baru di tabel users_roles.

Jika tidak ada peran yang memberikan akses administrator, karena klien melakukan segalanya dengan pengguna 1, Anda perlu melakukan trik yang sedikit kotor. Simpan hash kata sandi pengguna 1 di suatu tempat dan tambahkan sementara kata sandi baru untuk pengguna 1. Kemudian masuk dengan pengguna 1, buat akun baru untuk Anda sendiri, peran baru dengan izin yang memadai dan tambahkan diri Anda ke peran itu. Setelah itu, edit pengguna 1 di basis data dan kembalikan kata sandi. Saya dapat merekomendasikan peran admin untuk memaksa peran agar memiliki semua izin setiap saat.

Jorrit Schippers
sumber
13

Ada cara yang lebih mudah.

  1. Pergilah ke DB dan ubah bidang alamat email pengguna dengan id 1 dan atur ke alamat email Anda.
  2. Pergi ke http://mysite/userdan klik tautan pemulihan kata sandi.
  3. Masukkan alamat email Anda dan Anda akan mendapatkan tautan pemulihan kata sandi.

Tentu saja ini mengasumsikan bahwa sistem dev Anda memungkinkan drupal untuk mengirim surat keluar dari kotak. Ini berlaku untuk sebagian besar kotak linux dan osx tetapi tidak untuk Windows.

BetaRide
sumber
1
Ini sangat mudah. Setelah melakukan ini, OP dapat membuat pengguna baru, dan mengatur kembali email untuk pengguna # 1 seperti sebelumnya, jika itu benar-benar diperlukan.
kiamlaluno
Akan lebih mudah digunakan drush uliuntuk masuk sebagai pengguna 1.
mbomb007
9

Anda juga dapat membuat pengguna dan menetapkan peran dengan Drush , serta mengubah kata sandi untuk pengguna yang ada.

Drush adalah shell baris perintah dan antarmuka skrip untuk Drupal, pisau Swiss Army yang benar dirancang untuk membuat hidup lebih mudah bagi kita yang menghabiskan beberapa jam kerja kita meretas di command prompt.

mpdonadio
sumber
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;
}

Coba kode di atas.

Satya
sumber
Terima kasih - pertanyaan konyol: dalam file apa saya akan meletakkan kode ini?
Jane
2

Jika Anda menggunakan drush, Anda dapat menggunakan drush upwd [user] --password="[newpassword]" (kembali) yang mengatur kata sandi untuk pengguna dengan nama yang ditentukan. ( upwdadalah versi perintah singkat untuk user-password)

Contoh dari drush: drush user-password someuser --password="correct horse battery staple" yang menetapkan kata sandi yang ditentukan untuk nama pengguna "someuser".

baikho
sumber
1

Apa yang dapat Anda lakukan adalah masuk ke database, menyimpan kata sandi admin lama, mengatur ulang kata sandi admin dan kemudian masuk, membuat pengguna baru, dan kemudian mengatur ulang kata sandi admin kembali seperti semula sebelum Anda mulai.

Jika Anda memiliki akses ke drush, Anda bisa melakukan ini:

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

lalu ambil kata sandi hash MD5 yang dihasilkan di atas, dan:

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

Itu harus melakukan trik.

( sumber )

EddieN120
sumber