Skip to content

Commit 2710a3c

Browse files
committed
Do the right thing, avoid raw json string when preparing the configuration
1 parent c8647ff commit 2710a3c

File tree

1 file changed

+21
-39
lines changed

1 file changed

+21
-39
lines changed

src/core/qfieldcloudconnection.cpp

Lines changed: 21 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -579,49 +579,31 @@ void QFieldCloudConnection::setAuthenticationToken( QNetworkRequest &request )
579579
if ( mProviderConfigId.isEmpty() && mAvailableProviders.contains( mProvider ) )
580580
{
581581
const QVariantMap providerDetails = mAvailableProviders[mProvider].details();
582-
const QVariantMap providerExtraTokens = providerDetails.value( "extra_tokens" ).toMap();
583-
QStringList extraTokens;
584-
for ( const QString &key : providerExtraTokens.keys() )
585-
{
586-
extraTokens << QStringLiteral( "\"%1\":\"%2\"" ).arg( key, providerExtraTokens.value( key ).toString() );
587-
}
582+
583+
QVariantMap configMap;
584+
configMap["accessMethod"] = 0;
585+
configMap["clientId"] = providerDetails.value( "client_id" ).toString();
586+
configMap["clientSecret"] = providerDetails.value( "client_secret" ).toString();
587+
configMap["configType"] = 1;
588+
configMap["description"] = QString( "Connection details for QFieldCloud using %1 provider" ).arg( mProvider );
589+
configMap["extraTokens"] = providerDetails.value( "extra_tokens" ).toMap();
590+
configMap["grantFlow"] = 0;
591+
configMap["name"] = QString( "Autogenerated by QField" );
592+
configMap["persistToken"] = true;
593+
configMap["redirectHost"] = QString( "localhost" );
594+
configMap["redirectPort"] = 7070;
595+
configMap["refreshTokenUrl"] = providerDetails.value( "refresh_token_url" ).toString();
596+
configMap["requestTimeout"] = 30;
597+
configMap["requestUrl"] = providerDetails.value( "request_url" ).toString();
598+
configMap["scope"] = providerDetails.value( "scope" ).toString();
599+
configMap["tokenUrl"] = providerDetails.value( "token_url" ).toString();
600+
configMap["version"] = 1;
601+
QJsonDocument json = QJsonDocument::fromVariant( configMap );
588602

589603
QgsAuthMethodConfig config;
590604
config.setName( "qfieldcloud-sso" );
591605
config.setMethod( "OAuth2" );
592-
config.setConfig( "oauth2config", QStringLiteral( "{\"accessMethod\":0,"
593-
" \"apiKey\":null,"
594-
" \"clientId\":\"%1\","
595-
" \"clientSecret\":\"%2\","
596-
" \"configType\":1,"
597-
" \"customHeader\":null,"
598-
" \"description\":\"\","
599-
" \"grantFlow\":0,"
600-
" \"id\":null,"
601-
" \"name\":null,"
602-
" \"objectName\":\"\","
603-
" \"password\":null,"
604-
" \"persistToken\":true,"
605-
" \"queryPairs\":{\"1\":\"1\"},"
606-
" \"redirectHost\":\"localhost\","
607-
" \"redirectPort\":7070,"
608-
" \"redirectUrl\":null,"
609-
" \"requestUrl\":\"%3\","
610-
" \"tokenUrl\":\"%4\","
611-
" \"refreshTokenUrl\":\"%5\","
612-
" \"scope\":\"%6\","
613-
" \"extraTokens\":{%7},"
614-
" \"requestTimeout\":30,"
615-
" \"username\":null,"
616-
" \"version\":1"
617-
"}" )
618-
.arg( providerDetails.value( "client_id" ).toString(),
619-
providerDetails.value( "client_secret" ).toString(),
620-
providerDetails.value( "request_url" ).toString(),
621-
providerDetails.value( "token_url" ).toString(),
622-
providerDetails.value( "refresh_token_url" ).toString(),
623-
providerDetails.value( "scope" ).toString(),
624-
extraTokens.join( ',' ) ) );
606+
config.setConfig( "oauth2config", json.toJson() );
625607
QgsApplication::instance()->authManager()->storeAuthenticationConfig( config, true );
626608

627609
mProviderConfigId = config.id();

0 commit comments

Comments
 (0)