Редактирования пароля из админки

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 29 мая 2016 в 18:13
Прописывал свой хэш при переносе сайта на инстант. Вот не могу найти, где редактируется хэш для этой страницы в админке
/admin/users/edit/XXX
, уже думал всё изменил, уважаемые разработчики помогите пожалуйста
… скорее всего в 2.5.1 изменён какой-то код с паролем…
#2 29 мая 2016 в 19:35
как я понял первый инстант тоже был на md5? Скажите как из него получить как на втором и вообще возможно ли это, если я правильно понял то этот $password_salt = substr($password_salt, rand(1,8), 16);
$password_hash = md5(md5($user['password1']). $password_salt);

Скорее вопрос к тем кто делал мигратор, как это сделать?
#3 29 мая 2016 в 20:48
В БД в поле пароля сохраните пароль в md5 и входите
#4 29 мая 2016 в 20:50
Vladimir,
Если пользователь нормально заходит на сайт — значит пароль в порядке. А вот чтобы он смог войти в админку — должна стоять единица в колонке is_admin в таблице cms_users.
#5 29 мая 2016 в 20:57

В БД в поле пароля сохраните пароль в md5 и входите

Kreator

Если пользователь нормально заходит на сайт — значит пароль в порядке

HiAndy

Да не заходит, после обновления, всегда искал хэш и соль в этих файлах

system\controllers\users\model.php
system\controllers\users\actions\profile_edit_password.php
system\core\user.php

менял на мд5, тогда и заходит на сайт,
… а сейчас и пароль не радактируется...
вообщем хочу засолить все пароли и нормально всем пользоваться
#6 29 мая 2016 в 21:06

менял на мд5, тогда и заходит на сайт,

Vladimir
В двойке такой финт не прокатывает.
Если забыли пароль администратора — регистрируете нового пользователя с известным паролем, копируете и хэш и salt в строку админа.
#7 29 мая 2016 в 21:10

В двойке такой финт не прокатывает.
Если забыли пароль администратора — регистрируете нового пользователя с известным паролем, копируете и хэш и salt в строку админа.

HiAndy

Да с двойкой и работаю, вопрос как из моего (хочу перевести всех пользователей)

md5

, сделать засоленный пароль двойки

$password_salt = substr($password_salt, rand(1,8), 16);
$password_hash = md5(md5($user['password1']). $password_salt);
#8 29 мая 2016 в 21:17
controllers/users/model.php
Там функция

  1. public function addUser($user){
  2.  
  3. $errors = false;
  4.  
  5. if ($user['password1'] != $user['password2']){
  6. $errors['password1'] = LANG_REG_PASS_NOT_EQUAL;
  7. $errors['password2'] = LANG_REG_PASS_NOT_EQUAL;
  8. return array( 'success'=>false, 'errors'=>$errors );
  9. }
  10.  
  11. $date_reg = date('Y-m-d H:i:s');
  12. $date_log = $date_reg;
  13.  
  14. $password_salt = md5(implode(':', array($user['password1'], session_id(), microtime(), uniqid())));
  15. $password_salt = substr($password_salt, rand(1,8), 16);
  16. $password_hash = md5(md5($user['password1']) . $password_salt);
  17.  
  18. $groups = !empty($user['groups']) ? $user['groups'] : array(DEF_GROUP_ID);
  19.  
  20. $user = array_merge($user, array(
  21. 'groups' => $groups,
  22. 'password' => $password_hash,
  23. 'password_salt' => $password_salt,
  24. 'date_reg' => $date_reg,
  25. 'date_log' => $date_log,
  26. 'time_zone' => cmsConfig::get('time_zone')
  27. ));
  28.  
  29. $id = $this->insert('cms_users', $user);
  30.  
  31. if ($id){
  32.  
  33. $this->saveUserGroupsMembership($id, $groups);
  34.  
  35. cmsCore::getController('activity')->addEntry('users', 'signup', array(
  36. 'user_id' => $id
  37. ));
  38.  
  39. }
  40.  
  41. cmsCache::getInstance()->clean("users.list");
  42.  
  43. return array(
  44. 'success' => $id!==false,
  45. 'errors' => false,
  46. 'id' => $id
  47. );
  48.  
  49. }
Соответственно досаливание выглядит так:

$password_salt = md5(implode(':', array($user['password1'], session_id(), microtime(), uniqid())));
$password_salt = substr($password_salt, rand(1,8), 16);
$password_hash = md5(md5($user['password1']). $password_salt);

А вообще, есть же куча готовых утилит для переноса юзеров. Восльзуйтесь какой-нибудь.
#9 30 мая 2016 в 10:22

Да с двойкой и работаю, вопрос как из моего (хочу перевести всех пользователей) md5, сделать засоленный пароль двойки
$password_salt = substr($password_salt, rand(1,8), 16);
$password_hash = md5(md5($user['password1']). $password_salt);

Vladimir

А в чем проблема? Вопрос содержит ответ

md5($user['password1']) в приведенном вами коде это ваш "старый" md5
#10 31 мая 2016 в 19:40
Огромное спасибо HiAndy за помощь в решении проблемы! В частности за ссылку на данный мигратор

instantcms.ru/blogs/poleznosti-ot-sjen/migrator-dlja-instantcms-1-2-2-1-polzovateli-i-vse-svjazanye-tablicy.html

От себя добавлю, ставил с нуля инстант 2, но в базе указывал префикс отличный от стандартного, тогда всё работает, для переноса пользователей необходима последняя кнопка и две таблицы cms_users.sql и cms_user_profiles.sql
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.