예제 #1
0
    if (!isset($body->location) || gettype($body->location) != 'string' || strlen($body->location) < 1) {
        $new_user->location = '';
    } else {
        $new_user->location = $body->location;
    }
    if (!isset($body->website) || strlen($body->website) < 4 || !filter_var($body->email, FILTER_VALIDATE_URL)) {
        $new_user->website = '';
    } else {
        $new_user->website = $body->website;
    }
    if (!User::isValidPassword($body->password)) {
        throw new InvalidField('password');
    }
    $new_user->setPassword($body->password);
    $new_user->active = false;
    $new_user->save();
    $validationToken = new ValidationToken();
    $validationToken->token = SecureKey::generate();
    $validationToken->user_id = $new_user->id;
    $validationToken->save();
    $mailer = new Mailer();
    $mailer->sendMail('confirm_email.html', [$new_user->email], 'Please confirm your email account', ['user' => $new_user->toArray(), 'validation_token' => $validationToken->token]);
});
/**
 * Deletes the GLPi account on user request
 */
$user_delete_account = Tool::makeEndpoint(function () use($app, $resourceServer) {
    OAuthHelper::needsScopes(['user']);
    $body = Tool::getBody();
    $user = OAuthHelper::currentlyAuthed();
    // Ensures acceptable
예제 #2
0
         // local account, and are associating the external one
         // to that new local one
         $user = new User();
         $user->active = 0;
         // Notice it is created as non active
         $user->username = $external_account_infos['username'];
         if (isset($external_account_infos['realname'])) {
             $user->realname = $external_account_infos['realname'];
         }
         if (isset($external_account_infos['location'])) {
             $user->location = $external_account_infos['location'];
         }
         if (isset($external_account_infos['website'])) {
             $user->website = $external_account_infos['website'];
         }
         $user->save();
         $data['account_created'] = true;
         // Associating external user account
         $externalAccount = new UserExternalAccount();
         $externalAccount->external_user_id = $external_account_infos['id'];
         $externalAccount->token = $token;
         $externalAccount->service = $service;
         $user->externalAccounts()->save($externalAccount);
         $data['external_account_linked'] = true;
         $accessToken = OAuthHelper::createAccessTokenFromUserId($user->id, ['user']);
     }
     $data['access_token'] = $accessToken['token'];
     $data['refresh_token'] = $accessToken['refresh_token'];
     $data['access_token_expires_in'] = $accessToken['ttl'];
 }
 if (isset($data['error'])) {