Skip to content

Instantly share code, notes, and snippets.

@ftiff
Created July 20, 2016 16:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ftiff/03d71993bb562ff50b3ce7106f8aa6f6 to your computer and use it in GitHub Desktop.
Save ftiff/03d71993bb562ff50b3ce7106f8aa6f6 to your computer and use it in GitHub Desktop.
Set email and username for current computer in JSS
//
// updateCasperLocation.swift
//
// Created by Francois 'ftiff' Levaux-Tiffreau on 18.07.16.
// Licence = MIT (https://tldrlegal.com/license/mit-license)
/*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
* TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
* CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
// Add error handling!
func update_casper_location(email: String, username: String)
{
//getSerialNumber() -> https://gist.github.com/ftiff/f9a193d15a4da1d323be5f5584ebc06a
let url:NSURL = NSURL(string: "https://ftiff.jamfcloud.com/JSSResource/computers/serialnumber/\(getSerialNumber())")!
let session = NSURLSession.sharedSession()
let credusername = ""
let credpassword = ""
let loginString = String(format: "%@:%@", credusername, credpassword)
let loginData: NSData = loginString.dataUsingEncoding(NSUTF8StringEncoding)!
let base64LoginString = loginData.base64EncodedStringWithOptions([])
let request = NSMutableURLRequest(URL: url)
request.HTTPMethod = "PUT"
request.setValue("Basic \(base64LoginString)", forHTTPHeaderField: "Authorization")
request.cachePolicy = NSURLRequestCachePolicy.ReloadIgnoringCacheData
let data = "<computer><location><username>\(username)</username><email_address>\(email)</email_address></location></computer>".dataUsingEncoding(NSUTF8StringEncoding)
let task = session.uploadTaskWithRequest(request, fromData: data, completionHandler:
{(data,response,error) in
guard let _:NSData = data, let _:NSURLResponse = response where error == nil else {
NSLog("something went wrong")
return
}
let dataString = NSString(data: data!, encoding: NSUTF8StringEncoding)
NSLog(dataString)
}
);
task.resume()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment