/** * User's signs up. * * @return User|null the saved model or null if saving fails */ public function register() { if (!$this->validate()) { return false; } $user = new User(); $user->email = $this->email; $user->generateAuthKey(); $user->generatePasswordResetToken(); if (User::removeTokenByEmail($user->email) && $user->save()) { static::getCurrentModule()->sendMessage(self::EVENT_USER_REGISTER, new UserEvent($user)); return $user; } }