14 авг. 2015 г., 8:10

Валидация username

Добрый день. Столкнулся с такой проблемой, переопределяю процессор basket/web/orders/submit
protected function createContractor(){ $contractor = null; $email = $this->getProperty('email'); if ($this->getProperty('username')) { $username = $this->getProperty('username'); } else{ $username = $email; } // Выполняем поиск существующего пользователя по username $c = $this->modx->newQuery('modUser'); $c->innerJoin('modUserProfile', 'Profile'); $c->where(array( 'Profile.username:LIKE' => $username, )); if($user = $this->modx->getObject('modUser', $c)){ if($this->allowGetUserByUsername){ return $user; } else{ $this->addFieldError('username', "Username already taken. Please choose another. "); return $contractor; } }
В результате регистрация как бы проходит, но пользователь не создается совсем
$alreadyExists = $this->modx->getObject('modUser',array('username' => $username)); if ($alreadyExists) { $this->addFieldError('username', "Username already taken. Please choose another. "); return $contractor; }
Разобрался, кто заинтересован, предлагаю такое решение
Да, там действительно не хватает проверки пользователя по логину. Создал себе тикет.

Добавить комментарий