Skip to content

Instantly share code, notes, and snippets.

@DhruvaDave
Last active December 19, 2020 13:59
Show Gist options
  • Save DhruvaDave/24073ce557544382486769866963b0a2 to your computer and use it in GitHub Desktop.
Save DhruvaDave/24073ce557544382486769866963b0a2 to your computer and use it in GitHub Desktop.
def create_new_user_id(self,token,zone_id):
password = get_random_password_string(13)
self.email = "[email protected]"
self.firstname = "firstname"
self.lastname = "lastname"
self.company_name = "company_name"
userdata = {
"Email": self.email,
"FirstName":self.firstname,
"LastName":self.lastname,
"Company":self.company_name,
"Password":password,
"Preferences":{
"CanResetPassword":True,
"CanViewMySettings":True
},
"DefaultZone":{
"Id":zone_id
},
"notify":True
}
headers = self.get_authorization_header(token)
uri_path = "/sf/v3/Users"
headers['Content-Type'] = 'application/json'
http = httplib.HTTPSConnection(self.get_hostname(token))
http.request('POST', uri_path, json.dumps(userdata), headers=headers)
response = http.getresponse()
if response.status == 200:
new_users = json.loads(response.read())
self.sharefile_user_id = new_users['Id']
http.close()
return self.sharefile_user_id
else:
raise UserError(response.reason)
def get_random_password_string(length):
characters = string.ascii_letters + string.punctuation + string.digits
password = "".join(choice(characters) for x in range(randint(8, 16)))
return password
def create_user_sharelink(self):
self.email = "[email protected]"
hostname, username, password, client_id, client_secret = self.get_config_data()
token = self.authenticate(hostname, client_id, client_secret, username, password)
uri_path = '/sf/v3/Users?emailaddress=%s'%(email)
headers = self.get_authorization_header(token)
http = httplib.HTTPSConnection(self.get_hostname(token))
http.request('GET', uri_path, headers=headers)
response = http.getresponse()
folder_id = False
if response.status == 200:
new_folder = json.loads(response.read())
self.sharefile_user_id = new_folder.get('Id')
http.close()
else:
http.close()
zone_id = self.get_zones(token)
user_id = self.create_new_user_id(token,zone_id)
uri_path = "/sf/v3/Users(%s)/WelcomeNotification"%self.sharefile_user_id
headers = self.get_authorization_header(token)
http = httplib.HTTPSConnection(self.get_hostname(token))
http.request('POST', uri_path, headers=headers)
response = http.getresponse()
http.close()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment