From 9c94d6527a1968468567232698818c479c04b44b Mon Sep 17 00:00:00 2001 From: Grant Limberg Date: Sun, 26 Jun 2016 16:11:30 -0700 Subject: add allowGlobal, allowDefault, allowManaged options to joining a network --- ZeroTier One/JoinNetworkViewController.swift | 10 +++++-- ZeroTier One/JoinNetworkViewController.xib | 34 +++++++++++++++++---- ZeroTier One/ServiceCom.swift | 45 ++++++++++++++++++---------- 3 files changed, 67 insertions(+), 22 deletions(-) diff --git a/ZeroTier One/JoinNetworkViewController.swift b/ZeroTier One/JoinNetworkViewController.swift index 92e30cae..cef30d4e 100644 --- a/ZeroTier One/JoinNetworkViewController.swift +++ b/ZeroTier One/JoinNetworkViewController.swift @@ -30,6 +30,10 @@ class JoinNetworkViewController: NSViewController, NSComboBoxDelegate, NSComboBo @IBOutlet var network: NSComboBox! @IBOutlet var joinButton: NSButton! + @IBOutlet var allowManagedCheckBox: NSButton! + @IBOutlet var allowGlobalCheckBox: NSButton! + @IBOutlet var allowDefaultCheckBox:NSButton! + var values: [String] = [String]() override func viewDidLoad() { @@ -61,8 +65,10 @@ class JoinNetworkViewController: NSViewController, NSComboBoxDelegate, NSComboBo @IBAction func onJoinClicked(sender: AnyObject?) { let networkString = network.stringValue - ServiceCom.joinNetwork(networkString) - + ServiceCom.joinNetwork(networkString, + allowManaged: allowManagedCheckBox.state == NSOnState, + allowGlobal: allowGlobalCheckBox.state == NSOnState, + allowDefault: allowDefaultCheckBox.state == NSOnState) network.stringValue = "" diff --git a/ZeroTier One/JoinNetworkViewController.xib b/ZeroTier One/JoinNetworkViewController.xib index 625f1a3e..187af008 100644 --- a/ZeroTier One/JoinNetworkViewController.xib +++ b/ZeroTier One/JoinNetworkViewController.xib @@ -6,6 +6,9 @@ + + + @@ -14,11 +17,11 @@ - + - + @@ -26,7 +29,7 @@ - + + + + - + diff --git a/ZeroTier One/ServiceCom.swift b/ZeroTier One/ServiceCom.swift index 23c194c2..4c920ad2 100644 --- a/ZeroTier One/ServiceCom.swift +++ b/ZeroTier One/ServiceCom.swift @@ -119,29 +119,44 @@ class ServiceCom: NSObject { } - static func joinNetwork(network: String) { + static func joinNetwork(network: String, allowManaged: Bool = true, allowGlobal: Bool = false, allowDefault: Bool = false) { let urlString = baseURL + "/network/\(network)?auth=\(ServiceCom.getKey())" let url = NSURL(string: urlString) - if let u = url { - let request = NSMutableURLRequest(URL: u) - request.HTTPMethod = "POST" + var jsonDict = [String: AnyObject]() + jsonDict["allowManaged"] = NSNumber(bool: allowManaged) + jsonDict["allowGlobal"] = NSNumber(bool: allowGlobal) + jsonDict["allowDefault"] = NSNumber(bool: allowDefault) - let session = NSURLSession.sharedSession() - let task = session.dataTaskWithRequest(request) { (data, response, error) in - let httpResponse = response as! NSHTTPURLResponse - let status = httpResponse.statusCode + do { + let json = try NSJSONSerialization.dataWithJSONObject(jsonDict, options: NSJSONWritingOptions()) - if status == 200 { - NSLog("join ok") - } - else { - NSLog("join error: \(status)") + if let u = url { + let request = NSMutableURLRequest(URL: u) + request.HTTPMethod = "POST" + request.HTTPBody = json + request.setValue("application/json", forHTTPHeaderField: "Content-Type") + + let session = NSURLSession.sharedSession() + let task = session.dataTaskWithRequest(request) { (data, response, error) in + let httpResponse = response as! NSHTTPURLResponse + let status = httpResponse.statusCode + + if status == 200 { + NSLog("join ok") + } + else { + NSLog("join error: \(status)") + } } - } - task.resume() + task.resume() + } } + catch { + NSLog("\(error)") + } + } static func leaveNetwork(network: String) { -- cgit v1.2.3