public function process() { //регистрация без логина, по емейлу if ($this->getField('username') == '') { $this->setField('username', $this->getField('email')); } if ($this->checkSubmitProtection()) { return; } //регистрация со случайным паролем if ($this->getField('password') == '' && !isset($this->rules['password'])) { $this->setField('password', \APIhelpers::genPass($this->getCFGDef('passwordLength', 6))); } $fields = $this->filterFields($this->getFormData('fields'), $this->allowedFields, $this->forbiddenFields); $result = $this->user->create($fields)->save(true); $this->log('Register user', array('data' => $fields, 'result' => $result)); if (!$result) { $this->addMessage($this->lexicon->getMsg('register.registration_failed')); } else { $this->addWebUserToGroups($this->user->getID(), $this->getCFGDef('userGroups')); parent::process(); } }
public function genPass($len, $data = '') { return \APIhelpers::genPass($len, $data); }
public function process() { switch ($this->mode) { /** * Задаем хэш, отправляем пользователю ссылку для восстановления пароля */ case "hash": $uid = $this->getField($this->userField); if ($hash = $this->getUserHash($uid)) { $this->setFields($this->user->toArray()); $url = $this->getCFGDef('resetTo', $this->modx->documentIdentifier); $this->setField('reset.url', $this->modx->makeUrl($url, "", "&{$this->uidField}={$this->getField($this->uidField)}&{$this->hashField}={$hash}", 'full')); $this->mailConfig['to'] = $this->user->edit($uid)->get('email'); parent::process(); } else { $this->addMessage($this->lexicon->getMsg('reminder.users_only')); } break; /** * Если пароль не задан, то создаем пароль * Отправляем пользователю письмо с паролем, если указан шаблон такого письма * Если не указан, то запрещаем отправку письма, пароль будет показан на экране */ /** * Если пароль не задан, то создаем пароль * Отправляем пользователю письмо с паролем, если указан шаблон такого письма * Если не указан, то запрещаем отправку письма, пароль будет показан на экране */ case "reset": $uid = $this->getField($this->uidField); $hash = $this->getField($this->hashField); if ($hash && $hash == $this->getUserHash($uid)) { if ($this->getField('password') == '' && !isset($this->rules['password'])) { $this->setField('password', \APIhelpers::genPass($this->getCFGDef('passwordLength', 6))); } $fields = $this->filterFields($this->getFormData('fields'), array('password')); $result = $this->user->edit($uid)->fromArray($fields)->save(true); $this->log('Update password', array('data' => $fields, 'result' => $result)); if (!$result) { $this->addMessage($this->lexicon->getMsg('reminder.update_failed')); } else { $this->setField('newpassword', $this->getField('password')); $this->setFields($this->user->toArray()); if ($this->getCFGDef('resetReportTpl')) { $this->mailConfig['to'] = $this->getField('email'); } parent::process(); } } else { $this->addMessage($this->lexicon->getMsg('reminder.update_failed')); parent::process(); } break; } }