/** * Creates a temporary user. Useful for creating invites. * * @param array $data user data * * @return User temporary user */ public static function createTemporary($data) { $email = trim(strtolower(array_value($data, 'email'))); if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { return false; } $insertArray = array_replace($data, ['enabled' => 0]); // create the temporary user $user = new static(); $driver = self::getDriver(); $created = $driver->createModel($user, $insertArray); if (!$created) { return false; } // get the new user ID $id = []; foreach (static::getIDProperties() as $k) { $id[] = $driver->getCreatedID($user, $k); } $user = new static($id); // create the temporary link $link = new UserLink(); $link->create(['user_id' => $user->id(), 'type' => UserLink::TEMPORARY]); return $user; }
/** * Sends a verification email to a user. * * @param UserInterface $user * * @return bool */ public function sendVerificationEmail(UserInterface $user) { $params = ['user_id' => $user->id(), 'type' => UserLink::VERIFY_EMAIL]; // delete previous verify links $this->app['db']->delete('UserLinks')->where($params)->execute(); // create new verification link $link = new UserLink(); $link->create($params); // email it return $user->sendEmail('verify-email', ['verify' => $link->link]); }