pull/714/head
Rick Carlino 2018-03-12 10:59:37 -05:00
parent 035cab9ca5
commit 830097a509
7 changed files with 50 additions and 27 deletions

View File

@ -18,7 +18,7 @@ module CeleryScriptSettingsBag
install_farmware update_farmware take_photo zero
install_first_party_farmware remove_farmware
find_home register_gpio unregister_gpio
set_servo_angle)
set_servo_angle change_ownership)
ALLOWED_PACKAGES = %w(farmbot_os arduino_firmware)
ALLOWED_CHAGES = %w(add remove update)
RESOURCE_NAME = %w(images plants regimens peripherals
@ -216,6 +216,7 @@ module CeleryScriptSettingsBag
.node(:variable_declaration, [:label, :data_value], [])
.node(:parameter_declaration, [:label, :data_type], [])
.node(:set_servo_angle, [:pin_number, :pin_value], [])
.node(:change_ownership, [], [:pair])
.node(:install_first_party_farmware, [])
ANY_ARG_NAME = Corpus.as_json[:args].pluck("name").map(&:to_s)

View File

@ -53,7 +53,7 @@
"enzyme": "^3.1.0",
"enzyme-adapter-react-16": "^1.1.0",
"extract-text-webpack-plugin": "^3.0.1",
"farmbot": "5.4.0-rc5",
"farmbot": "5.4.0-rc9",
"farmbot-toastr": "^1.0.3",
"fastclick": "^1.0.6",
"file-loader": "^1.1.5",

View File

@ -3,7 +3,7 @@ import { Row, Col, BlurableInput } from "../../../ui/index";
import { t } from "i18next";
import { info, success } from "farmbot-toastr";
import { getDevice } from "../../../device";
import { rpcRequest } from "farmbot";
import { transferOwnership } from "../../transfer_ownership/transfer_ownership";
interface ChangeOwnershipFormState {
email: string;
@ -21,16 +21,9 @@ export class ChangeOwnershipForm
submitOwnershipChange = () => {
info(t("Sending change of ownership..."), t("Sending"));
getDevice()
.send(rpcRequest([
{ kind: "pair", args: { label: "email", value: this.state.email } },
{ kind: "pair", args: { label: "secret", value: 0 } },
{ kind: "pair", args: { label: "server", value: this.state.server } }
// tslint:disable-next-line:no-any
] as any))
.then(() => {
success(t("Received change of ownership."));
});
const { email, password, server } = this.state;
transferOwnership({ email, password, server, device: getDevice() })
.then(() => success(t("Received change of ownership.")));
}
render() {

View File

@ -0,0 +1,11 @@
import { TransferProps } from "./transfer_ownership";
import axios from "axios";
const certUrl = (server: string) => `${server}/api/users/control_certificate`;
export async function createTransferCert(input: TransferProps): Promise<string> {
const { server, email, password } = input;
const { data } =
await axios.post<string>(certUrl(server), { email, password });
return Promise.resolve(data);
}

View File

@ -0,0 +1,17 @@
import { Farmbot, toPairs, rpcRequest } from "farmbot";
import { createTransferCert } from "./create_transfer_cert";
export interface TransferProps {
email: string;
password: string;
server: string;
device: Farmbot;
}
export async function transferOwnership(input: TransferProps): Promise<void> {
const { email, server, device } = input;
const secret = await createTransferCert(input);
const body = toPairs({ email, server, secret });
await device.send(rpcRequest([{ kind: "change_ownership", args: {}, body }]));
return Promise.resolve();
}

View File

@ -102,17 +102,18 @@ export enum MinVersionOverride {
export function shouldDisplay(
current: string | undefined, lookupData: MinOsFeatureLookup | undefined) {
return function (feature: Feature): boolean {
if (isString(current)) {
const min = (lookupData || {})[feature] || MinVersionOverride.NEVER;
switch (semverCompare(current, min)) {
case SemverResult.LEFT_IS_GREATER:
case SemverResult.EQUAL:
return true;
default:
return false;
}
}
return false;
return true;
// if (isString(current)) {
// const min = (lookupData || {})[feature] || MinVersionOverride.NEVER;
// switch (semverCompare(current, min)) {
// case SemverResult.LEFT_IS_GREATER:
// case SemverResult.EQUAL:
// return true;
// default:
// return false;
// }
// }
// return false;
};
}

View File

@ -2258,9 +2258,9 @@ farmbot-toastr@^1.0.0, farmbot-toastr@^1.0.3:
farmbot-toastr "^1.0.0"
typescript "^2.3.4"
farmbot@5.4.0-rc5:
version "5.4.0-rc5"
resolved "https://registry.yarnpkg.com/farmbot/-/farmbot-5.4.0-rc5.tgz#92ab974e9439601b10ba5ea5073f1cf993f2def0"
farmbot@5.4.0-rc9:
version "5.4.0-rc9"
resolved "https://registry.yarnpkg.com/farmbot/-/farmbot-5.4.0-rc9.tgz#8294a29866d6f5b44c4a68960c11af071208234c"
dependencies:
mqtt "2.15.0"
typescript "^2.4.2"