aboutsummaryrefslogtreecommitdiffstats
path: root/src/api/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/api/utils.py')
-rw-r--r--src/api/utils.py132
1 files changed, 0 insertions, 132 deletions
diff --git a/src/api/utils.py b/src/api/utils.py
deleted file mode 100644
index 9a9c260..0000000
--- a/src/api/utils.py
+++ /dev/null
@@ -1,132 +0,0 @@
-# These functions are called from views and perform the actual request to LibLaaS
-
-import json
-from django.http.response import JsonResponse, HttpResponse
-import requests
-import os
-
-from dashboard.forms import *
-liblaas_base_url = os.environ.get("LIBLAAS_BASE_URL")
-
-# IPA Stuff
-def ipa_query_user(ipa_username):
- url = liblaas_base_url + "user/" + ipa_username
- print("Getting ipa user for", ipa_username, url)
- try:
- response = requests.get(url)
- data = response.json()
- print("ipa user is", data)
- return data # Expects a dict
- except Exception as e:
- print(e)
- return None
-
-# Queries for an IPA user using dashboard username
-# Returns a result
-def get_ipa_migration_form(user, profile):
- # ipa_user = ipa_query_user(str(dashboard_user))
- # if (ipa_user and ipa_user.mail is )
- # pass
- dashboard_username = str(user)
- dashboard_email = profile.email_addr
- first_name = user.first_name
- last_name = user.last_name
-
- ipa_user = ipa_query_user(dashboard_username)
- print("Attempting auto migration with", dashboard_username, dashboard_email, ipa_user)
- if (ipa_user):
- if (dashboard_email == ipa_user["mail"]):
- # User is found and email match
- print("User is found and email match")
- return {
- "form": ReadOnlyIPAAccountForm(initial={'ipa_username': ipa_user['uid'],'first_name': ipa_user["givenname"], 'last_name': ipa_user["sn"], 'email': ipa_user["mail"], 'company': ipa_user["ou"]}),
- "message": "We have located the following IPA account matching your username and email. Please confirm to link your account. You may change these details at any time.",
- "action": "api/ipa/confirm",
- "button": "Link"
- }
-
- else:
- # User is found and emails don't match
- print("User is found and emails don't match")
- return {
- "form": ConflictIPAAcountForm(initial={'first_name': first_name, 'last_name': last_name, 'email': dashboard_email}),
- "message": "Our records indicate that you do not currently have an account in our IPA system, or your emails do not match. Please enter the following details to enroll your account.",
- "action": "/",
- "button": "Submit"
- }
- else:
- # User is not found
- print("User is not found")
- return {
- "form": NewIPAAccountForm(initial={'first_name': first_name, 'last_name': last_name, 'email': dashboard_email}),
- "message": "Our records indicate that you do not currently have an account in our IPA system, or your usernames do not match. Please enter the following details to enroll your account.",
- "action": "api/ipa/create",
- "button": "Submit"
- }
-
-# Removes leading and trailing white space from a list of ssh keys and returns the cleaned list
-def clean_ssh_keys(ssh_key_list):
- cleaned = []
- for key in ssh_key_list:
- cleaned.append(key.strip())
- return cleaned
-
-# Take a list of strings, sends it to liblaas, replacing the IPA keys with the new keys
-def ipa_set_ssh(user_profile, ssh_key_list):
- url = liblaas_base_url + "user/" + user_profile.ipa_username + "/ssh"
- ssh_key_list = clean_ssh_keys(ssh_key_list)
- try:
- requests.post(url, data=json.dumps(ssh_key_list), headers={'Content-Type': 'application/json'})
- return HttpResponse(status=200)
- except Exception as e:
- print(e)
- return HttpResponse(status=500)
-
-def ipa_set_company(user_profile, company_name):
- url = liblaas_base_url + "user/" + user_profile.ipa_username + "/company"
- print("Setting company with URL", url)
- try:
- requests.post(url, data=json.dumps(company_name), headers={'Content-Type': 'application/json'})
- return HttpResponse(status=200)
- except Exception as e:
- print(e)
- return HttpResponse(status=500)
-
-def get_booking_prereqs_validator(user_profile):
- ipa_user = None
- if (user_profile.ipa_username != None and user_profile.ipa_username != ""):
- ipa_user = ipa_query_user(user_profile.ipa_username)
-
- if ipa_user == None:
- print("No user")
- return {
- "form": None,
- "exists": "false",
- "action": "no user",
- "result": 0
- }
-
- if (not "ou" in ipa_user) or (ipa_user["ou"] == ""):
- print("Missing company")
- return {
- "form": SetCompanyForm(),
- "exists": "true",
- "action": "/api/ipa/workflow-company",
- "result": 1
- }
-
- if (not "ipasshpubkey" in ipa_user) or (ipa_user["ipasshpubkey"] == []):
- print("Missing SSH key")
- return {
- "form": SetSSHForm(),
- "exists": "true",
- "action": "/api/ipa/workflow-ssh",
- "result": 2,
- }
-
- return {
- "form": None,
- "exists": "false",
- "action": "",
- "result": -1
- } \ No newline at end of file