public function tearDown()
 {
     \DreamFactory\Core\Models\User::whereEmail('*****@*****.**')->delete();
     parent::tearDown();
 }
 /**
  * Changes password by security answer.
  *
  * @param      $email
  * @param      $answer
  * @param      $newPassword
  * @param bool $login
  *
  * @return array
  * @throws BadRequestException
  * @throws InternalServerErrorException
  * @throws NotFoundException
  */
 protected static function changePasswordBySecurityAnswer($email, $answer, $newPassword, $login = true)
 {
     if (empty($email)) {
         throw new BadRequestException("Missing required email for password reset confirmation.");
     }
     if (empty($newPassword)) {
         throw new BadRequestException("Missing new password for reset.");
     }
     if (empty($answer)) {
         throw new BadRequestException("Missing security answer.");
     }
     /** @var User $user */
     $user = User::whereEmail($email)->first();
     if (null === $user) {
         // bad code
         throw new NotFoundException("The supplied email and confirmation code were not found in the system.");
     }
     static::isAllowed($user);
     try {
         // validate answer
         $isValid = \Hash::check($answer, $user->security_answer);
     } catch (\Exception $ex) {
         throw new InternalServerErrorException("Error validating security answer.\n{$ex->getMessage()}");
     }
     if (!$isValid) {
         throw new BadRequestException("The answer supplied does not match.");
     }
     try {
         $user->password = $newPassword;
         $user->save();
     } catch (\Exception $ex) {
         throw new InternalServerErrorException("Error processing password change.\n{$ex->getMessage()}");
     }
     if ($login) {
         static::userLogin($email, $newPassword);
         return ['success' => true, 'session_token' => Session::getSessionToken()];
     }
     return ['success' => true];
 }
 public function tearDown()
 {
     User::whereEmail('*****@*****.**')->delete();
     Role::whereName('test_role')->delete();
     App::whereId(1)->update(['role_id' => null]);
 }
 protected function deleteUser($num)
 {
     $user = $this->{'user' . $num};
     $email = Arr::get($user, 'email');
     \DreamFactory\Core\Models\User::whereEmail($email)->delete();
 }
Beispiel #5
0
 /**
  * If does not exists, creates a shadow LDap user using user info provided
  * by the Ldap service provider and assigns default role to this user
  * for all apps in the system. If user already exists then updates user's
  * role for all apps and returns it.
  *
  * @param LdapUserContract $ldapUser
  *
  * @return User
  * @throws \Exception
  */
 public function createShadowADLdapUser(LdapUserContract $ldapUser)
 {
     $email = $ldapUser->getEmail();
     $serviceName = $this->getName();
     if (empty($email)) {
         $uid = $ldapUser->getUid();
         if (empty($uid)) {
             $uid = str_replace(' ', '', $ldapUser->getName());
         }
         $domain = $ldapUser->getDomain();
         $email = $uid . '+' . $serviceName . '@' . $domain;
     } else {
         list($emailId, $domain) = explode('@', $email);
         $email = $emailId . '+' . $serviceName . '@' . $domain;
     }
     $user = User::whereEmail($email)->first();
     if (empty($user)) {
         $data = ['name' => $ldapUser->getName(), 'first_name' => $ldapUser->getFirstName(), 'last_name' => $ldapUser->getLastName(), 'email' => $email, 'is_active' => true, 'adldap' => $this->getProviderName(), 'password' => $ldapUser->getPassword()];
         $user = User::create($data);
     }
     $defaultRole = $this->getDefaultRole();
     User::applyDefaultUserAppRole($user, $defaultRole);
     return $user;
 }
 /**
  * If does not exists, creates a shadow OAuth user using user info provided
  * by the OAuth service provider and assigns default role to this user
  * for all apps in the system. If user already exists then updates user's
  * role for all apps and returns it.
  *
  * @param OAuthUserContract $OAuthUser
  *
  * @return User
  * @throws \Exception
  */
 public function createShadowOAuthUser(OAuthUserContract $OAuthUser)
 {
     $fullName = $OAuthUser->getName();
     @(list($firstName, $lastName) = explode(' ', $fullName));
     $email = $OAuthUser->getEmail();
     $serviceName = $this->getName();
     $providerName = $this->getProviderName();
     $accessToken = $OAuthUser->token;
     if (empty($email)) {
         $email = $OAuthUser->getId() . '+' . $serviceName . '@' . $serviceName . '.com';
     } else {
         list($emailId, $domain) = explode('@', $email);
         $email = $emailId . '+' . $serviceName . '@' . $domain;
     }
     $user = User::whereEmail($email)->first();
     if (empty($user)) {
         $data = ['name' => $fullName, 'first_name' => $firstName, 'last_name' => $lastName, 'email' => $email, 'is_active' => true, 'oauth_provider' => $providerName, 'password' => $accessToken];
         $user = User::create($data);
     }
     $defaultRole = $this->getDefaultRole();
     User::applyDefaultUserAppRole($user, $defaultRole);
     return $user;
 }
 public function tearDown()
 {
     $email = Arr::get($this->user1, 'email');
     User::whereEmail($email)->delete();
     parent::tearDown();
 }
 protected function deleteUser($num)
 {
     $user = $this->{'user' . $num};
     $email = Arr::get($user, 'email');
     User::whereEmail($email)->delete();
 }