コード例 #1
0
ファイル: Register.php プロジェクト: Pathologic/FormLister
 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();
     }
 }
コード例 #2
0
ファイル: MODx.php プロジェクト: dukeRD/DocLister
 public function genPass($len, $data = '')
 {
     return \APIhelpers::genPass($len, $data);
 }
コード例 #3
0
ファイル: Reminder.php プロジェクト: Pathologic/FormLister
 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;
     }
 }