예제 #1
0
파일: UserBean.php 프로젝트: ilivanoff/www
 /**
  * Создание пользователя
  * @return int userId - код нового пользователя
  */
 public final function createUser(RegFormData $data)
 {
     $email = PsCheck::email($data->getUserMail());
     //Проверим, что пользователь с таким email ещё не заведён
     check_condition(!$this->hasMail($email), "Пользователь с почтой [{$email}] уже зарегистрирован");
     //Подготовим поля для вставки
     $params[self::FIELD_NAME] = $data->getUserName();
     $params[self::FIELD_SEX] = $data->getSex();
     $params[self::FIELD_EMAIL] = $email;
     $params[self::FIELD_PASSWD] = self::hashPassword($data->getPassword());
     $params[self::FIELD_B_ADMIN] = 0;
     $params[self::FIELD_B_CAN_LOGIN] = 1;
     $params[] = Query::assocParam(self::FIELD_DT_REG, 'UNIX_TIMESTAMP()', false);
     //Выполняем вставку
     $userId = $this->register($this->insert(Query::insert('users', $params)));
     //Сохраним данные пользователя в аудит
     UserAudit::inst()->afterRegistered($userId, array_filter_keys($this->getUserDataById($userId), self::$SKIP_AUDIT_ON_CREATE_FIELDS));
     //Возвращаем код пользователя
     return $userId;
 }