예제 #1
0
 /**
  * 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;
 }
예제 #2
0
 /**
  * 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]);
 }