Перейти к содержимому


Создание пользователя с помощью вычисления.


Сообщений в теме: 9

#1 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 31 Январь 2013 - 02:34

Я хочу создавать пользователя с помощью вычисления. Это возможно? Основная проблема - это не знание алгоритма генерации пароля. Одним словом хотелось бы от разработчиков услышать развернутый ответ пожалуйста. Спасибо.

Сообщение отредактировал wondertalik: 31 Январь 2013 - 02:34


#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 31 Январь 2013 - 09:34

Создание пользователя через вычисление было в старой версии стандартной ревизии в таблице Сотрудники (в новой сделано через встроенный механизм). Можете там посмотреть весь алгоритм.

#3 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 04 Февраль 2013 - 00:34

Может я чего-то не понимаю, но я не нашел. Тыкните меня:) в нужную сторону.

#4 Гость_Roman_*

  • Гости

Отправлено 04 Февраль 2013 - 08:10

Генерация пароля производится с помощью функции generate_password() в файле functions1.php. Единственное существенное изменение в версии 1.9.6 - пароли не хранятся в md5, там используется более сложный алгоритм. Чтобы использовать md5, при создании пользователя можно добавить в поле "crypt_mode" значение "md5". Либо же прописать в config.php
$config['password_hash_coder'] = "md5";
Но тогда кодирование md5 будет действовать для всех пользователей.

#5 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 04 Февраль 2013 - 10:48

CREATE TABLE `f_users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `fio` varchar(255) NOT NULL,
  `e_mail` varchar(255) NOT NULL,
  `phone` varchar(255) NOT NULL,
  `login` varchar(255) NOT NULL,
  `password` text NOT NULL,
  `code` varchar(255) NOT NULL,
  `date_registr` date NOT NULL DEFAULT '0000-00-00',
  `arc` int(11) NOT NULL DEFAULT '0',
  `group_id` int(11) NOT NULL DEFAULT '0',
  `lang` varchar(30) NOT NULL,
  `time_zone` varchar(255) NOT NULL,
  `window_scroll` tinyint(1) NOT NULL DEFAULT '-1',
  `developer_mode` tinyint(1) NOT NULL DEFAULT '0',
  `user_hash` varchar(255) NOT NULL,
  `last_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `last_event` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
  `last_ip` varchar(255) NOT NULL,
  `ot_key` text NOT NULL,
  `crypt_mode` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8
Создание пользователя - это добавление записи, я так понял, в таблицу $config['prefix']_users с помощью sql-запроса или есть уже готовая функция? Вызывают вопросы поля: crypt_mode, ot_key, last_ip, last_event, user_hash, developer_mode, arc, code. Спасибо.

#6 Гость_Roman_*

  • Гости

Отправлено 04 Февраль 2013 - 10:56

Готовой функции нет.
crypt_mode - кодирование паролей в бд.
last_ip - последний IP пользователя
last_event - время последнего срабатывания скрипта events.php (для отслеживания активности пользователей)
user_hash - хэш безопасности
developer_mode - режим разработчика
arc - архив
code, ot_key - неактивны, разработки на будущее.

#7 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 04 Февраль 2013 - 11:13

если использовать generate_password(), crypt_mode может принимать любые значения, у меня там 8? Функция генерирует случайный пароль, если вызывается без аргументов, сам пароль передается в $chars? user_hash - как генерируется это значение? last_event, last_ip - заполняется самой кб?

Сообщение отредактировал wondertalik: 04 Февраль 2013 - 11:18


#8 Гость_Roman_*

  • Гости

Отправлено 04 Февраль 2013 - 11:52

Функция generate_password() просто возвращает сгенерированнный случайный пароль. Это значение необходимо преобразовать в md5 и записать в БД. Также, необходимо в данном случае указать в поле "crypt_mode" значение "md5". $chars - флаг на использование небуквенных символов в пароле.
user_hash, last_event, last_ip - генерируются в КБ, записывать туда данные нет необходимости.

#9 nevmerzhitsky

    Участник

  • Пользователи
  • PipPip
  • 24 сообщений
  • Пол:Мужчина

Отправлено 10 Декабрь 2014 - 17:57

Готовой функции для создания пользователя с определенной группой доступа (пароль может быть любым, пусть на почту отправляется) из PHP-кода по прежнему нет? Я использую SaaS версию.

#10 wondertalik

    Активный участник

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 11 Декабрь 2014 - 02:40

Давно это было, по сути там нет нечего сложного, можно и написать если в кб не добавили.





Количество пользователей, читающих эту тему: 2

0 пользователей, 2 гостей, 0 анонимных