From 0bf7c545395cad064abd1e50e35412d0d4101cd4 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Wed, 15 Aug 2018 21:42:43 +0200 Subject: [PATCH] app/models/Data/User.php: change validation from Uniqueness to Callback and check findFirstByUsername() and findFirstByEmail() --- app/models/Data/User.php | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/app/models/Data/User.php b/app/models/Data/User.php index 86a8707..1135372 100644 --- a/app/models/Data/User.php +++ b/app/models/Data/User.php @@ -4,7 +4,7 @@ namespace App\Model\Data; use Phalcon\Mvc\Model, Phalcon\Validation, - Phalcon\Validation\Validator\Uniqueness, + Phalcon\Validation\Validator\Callback as CallbackValidator, InvalidArgumentException, Httpcb\OAuth\UserData\UserDataInterface; @@ -52,8 +52,14 @@ class User extends Model // Validation $validator = new Validation(); - $validator->add('username', new Uniqueness(['message' => 'The username already exists.'])); - $validator->add('email', new Uniqueness(['message' => 'The email address already exists.'])); + $validator->add('username', new CallbackValidator([ + 'callback' => function() { return $this->findFirstByUsername($this->getUsername()) === false; }, + 'message' => 'The username already exists.' + ])); + $validator->add('email', new CallbackValidator([ + 'callback' => function() { return $this->findFirstByEmail($this->getEmail()) === false; }, + 'message' => 'The email address already exists.' + ])); return $this->validate($validator); }