MCPcopy Create free account
hub / github.com/KDE/kdevelop / slotAuthenticate

Method slotAuthenticate

plugins/ghprovider/ghresource.cpp:146–176  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

144}
145
146void Resource::slotAuthenticate(KJob *job)
147{
148 const QString tokenName = job->property("requestedTokenName").toString();
149 Q_ASSERT(!tokenName.isEmpty());
150
151 if (job->error()) {
152 emit authenticated("", "", tokenName);
153 return;
154 }
155
156 const auto metaData = qobject_cast<KIO::StoredTransferJob*>(job)->metaData();
157 if (metaData[QStringLiteral("responsecode")] == QLatin1String("401")) {
158 const auto& header = metaData[QStringLiteral("HTTP-Headers")];
159 if (header.contains(QLatin1String("X-GitHub-OTP: required;"), Qt::CaseInsensitive)) {
160 emit twoFactorAuthRequested(qobject_cast<KIO::StoredTransferJob*>(job)->outgoingMetaData()[QStringLiteral("customHTTPHeader")]);
161 return;
162 }
163 }
164
165 QJsonParseError error;
166 QJsonDocument doc = QJsonDocument::fromJson(qobject_cast<KIO::StoredTransferJob *>(job)->data(), &error);
167
168 qCDebug(GHPROVIDER) << "Response:" << doc;
169
170 if (error.error == 0) {
171 QVariantMap map = doc.toVariant().toMap();
172 emit authenticated(map.value(QStringLiteral("id")).toByteArray(),
173 map.value(QStringLiteral("token")).toByteArray(), tokenName);
174 } else
175 emit authenticated("", "", tokenName);
176}
177
178void Resource::slotRepos(KIO::Job *job, const QByteArray &data)
179{

Callers

nothing calls this directly

Calls 9

propertyMethod · 0.80
toByteArrayMethod · 0.80
toStringMethod · 0.45
isEmptyMethod · 0.45
errorMethod · 0.45
containsMethod · 0.45
dataMethod · 0.45
toVariantMethod · 0.45
valueMethod · 0.45

Tested by

no test coverage detected