more work on oauth
This commit is contained in:
parent
5c2e288999
commit
42e8f455b2
@ -373,12 +373,13 @@ void DeviceManager::pairDevice(const QUuid &deviceClassId, const QString &name,
|
|||||||
m_jsonClient->sendCommand("Devices.PairDevice", params, this, "pairDeviceResponse");
|
m_jsonClient->sendCommand("Devices.PairDevice", params, this, "pairDeviceResponse");
|
||||||
}
|
}
|
||||||
|
|
||||||
void DeviceManager::confirmPairing(const QUuid &pairingTransactionId, const QString &secret)
|
void DeviceManager::confirmPairing(const QUuid &pairingTransactionId, const QString &secret, const QString &username)
|
||||||
{
|
{
|
||||||
qDebug() << "JsonRpc: confirm pairing" << pairingTransactionId.toString();
|
qDebug() << "JsonRpc: confirm pairing" << pairingTransactionId.toString();
|
||||||
QVariantMap params;
|
QVariantMap params;
|
||||||
params.insert("pairingTransactionId", pairingTransactionId.toString());
|
params.insert("pairingTransactionId", pairingTransactionId.toString());
|
||||||
params.insert("secret", secret);
|
params.insert("secret", secret);
|
||||||
|
params.insert("username", username);
|
||||||
m_jsonClient->sendCommand("Devices.ConfirmPairing", params, this, "confirmPairingResponse");
|
m_jsonClient->sendCommand("Devices.ConfirmPairing", params, this, "confirmPairingResponse");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -70,7 +70,7 @@ public:
|
|||||||
Q_INVOKABLE void addDiscoveredDevice(const QUuid &deviceClassId, const QUuid &deviceDescriptorId, const QString &name, const QVariantList &deviceParams);
|
Q_INVOKABLE void addDiscoveredDevice(const QUuid &deviceClassId, const QUuid &deviceDescriptorId, const QString &name, const QVariantList &deviceParams);
|
||||||
Q_INVOKABLE void pairDevice(const QUuid &deviceClassId, const QUuid &deviceDescriptorId, const QString &name);
|
Q_INVOKABLE void pairDevice(const QUuid &deviceClassId, const QUuid &deviceDescriptorId, const QString &name);
|
||||||
Q_INVOKABLE void pairDevice(const QUuid &deviceClassId, const QString &name, const QVariantList &deviceParams);
|
Q_INVOKABLE void pairDevice(const QUuid &deviceClassId, const QString &name, const QVariantList &deviceParams);
|
||||||
Q_INVOKABLE void confirmPairing(const QUuid &pairingTransactionId, const QString &secret = QString());
|
Q_INVOKABLE void confirmPairing(const QUuid &pairingTransactionId, const QString &secret = QString(), const QString &username = QString());
|
||||||
Q_INVOKABLE void removeDevice(const QUuid &deviceId, RemovePolicy policy = RemovePolicyNone);
|
Q_INVOKABLE void removeDevice(const QUuid &deviceId, RemovePolicy policy = RemovePolicyNone);
|
||||||
Q_INVOKABLE void editDevice(const QUuid &deviceId, const QString &name);
|
Q_INVOKABLE void editDevice(const QUuid &deviceId, const QString &name);
|
||||||
Q_INVOKABLE void setDeviceSettings(const QUuid &deviceId, const QVariantList &settings);
|
Q_INVOKABLE void setDeviceSettings(const QUuid &deviceId, const QVariantList &settings);
|
||||||
|
|||||||
@ -494,6 +494,8 @@ DeviceClass::SetupMethod JsonTypes::stringToSetupMethod(const QString &setupMeth
|
|||||||
return DeviceClass::SetupMethodPushButton;
|
return DeviceClass::SetupMethodPushButton;
|
||||||
} else if (setupMethodString == "SetupMethodOAuth") {
|
} else if (setupMethodString == "SetupMethodOAuth") {
|
||||||
return DeviceClass::SetupMethodOAuth;
|
return DeviceClass::SetupMethodOAuth;
|
||||||
|
} else if (setupMethodString == "SetupMethodUserAndPassword") {
|
||||||
|
return DeviceClass::SetupMethodUserAndPassword;
|
||||||
}
|
}
|
||||||
return DeviceClass::SetupMethodJustAdd;
|
return DeviceClass::SetupMethodJustAdd;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -63,6 +63,7 @@ public:
|
|||||||
SetupMethodEnterPin,
|
SetupMethodEnterPin,
|
||||||
SetupMethodPushButton,
|
SetupMethodPushButton,
|
||||||
SetupMethodOAuth,
|
SetupMethodOAuth,
|
||||||
|
SetupMethodUserAndPassword,
|
||||||
};
|
};
|
||||||
Q_ENUM(SetupMethod)
|
Q_ENUM(SetupMethod)
|
||||||
|
|
||||||
|
|||||||
@ -73,14 +73,11 @@ Page {
|
|||||||
|
|
||||||
switch (params["setupMethod"]) {
|
switch (params["setupMethod"]) {
|
||||||
case "SetupMethodPushButton":
|
case "SetupMethodPushButton":
|
||||||
print("response", params["displayMessage"], d.pairingTransactionId)
|
|
||||||
internalPageStack.push(pairingPageComponent, {text: params["displayMessage"]})
|
|
||||||
break;
|
|
||||||
case "SetupMethodDisplayPin":
|
case "SetupMethodDisplayPin":
|
||||||
|
case "SetupMethodUserAndPassword":
|
||||||
internalPageStack.push(pairingPageComponent, {text: params["displayMessage"], setupMethod: params["setupMethod"]})
|
internalPageStack.push(pairingPageComponent, {text: params["displayMessage"], setupMethod: params["setupMethod"]})
|
||||||
break;
|
break;
|
||||||
case "SetupMethodOAuth":
|
case "SetupMethodOAuth":
|
||||||
print("OAuth URL:", params["oAuthUrl"]);
|
|
||||||
internalPageStack.push(oAuthPageComponent, {oAuthUrl: params["oAuthUrl"]})
|
internalPageStack.push(oAuthPageComponent, {oAuthUrl: params["oAuthUrl"]})
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -378,13 +375,14 @@ Page {
|
|||||||
case 2:
|
case 2:
|
||||||
case 3:
|
case 3:
|
||||||
case 4:
|
case 4:
|
||||||
|
case 5:
|
||||||
if (root.device) {
|
if (root.device) {
|
||||||
// if (d.deviceDescriptor) {
|
// if (d.deviceDescriptor) {
|
||||||
// engine.deviceManager.pairDevice(root.deviceClass.id, d.deviceDescriptor.id, nameTextField.text);
|
// engine.deviceManager.pairDevice(root.deviceClass.id, d.deviceDescriptor.id, nameTextField.text);
|
||||||
// } else {
|
// } else {
|
||||||
// engine.deviceManager.pairDevice(root.deviceClass.id, nameTextField.text, params);
|
// engine.deviceManager.pairDevice(root.deviceClass.id, nameTextField.text, params);
|
||||||
// }
|
// }
|
||||||
console.warn("Unhandle setupMethod!")
|
console.warn("Unhandled setupMethod!")
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
if (d.deviceDescriptor) {
|
if (d.deviceDescriptor) {
|
||||||
@ -434,17 +432,25 @@ Page {
|
|||||||
wrapMode: Text.WordWrap
|
wrapMode: Text.WordWrap
|
||||||
horizontalAlignment: Text.AlignHCenter
|
horizontalAlignment: Text.AlignHCenter
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TextField {
|
||||||
|
id: usernameTextField
|
||||||
|
Layout.fillWidth: true
|
||||||
|
visible: pairingPage.setupMethod === "SetupMethodUserAndPassword"
|
||||||
|
}
|
||||||
|
|
||||||
TextField {
|
TextField {
|
||||||
id: pinTextField
|
id: pinTextField
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
visible: pairingPage.setupMethod === "SetupMethodDisplayPin"
|
visible: pairingPage.setupMethod === "SetupMethodDisplayPin" || pairingPage.setupMethod === "SetupMethodUserAndPassword"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Button {
|
Button {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
text: "OK"
|
text: "OK"
|
||||||
onClicked: {
|
onClicked: {
|
||||||
engine.deviceManager.confirmPairing(d.pairingTransactionId, pinTextField.displayText);
|
engine.deviceManager.confirmPairing(d.pairingTransactionId, pinTextField.displayText, usernameTextField.displayText);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user