From a6168306c08e8d5b207b9acc48869180d194ff01 Mon Sep 17 00:00:00 2001 From: Justin Choquette Date: Mon, 7 Aug 2023 14:10:19 -0400 Subject: User subsystem Change-Id: Ibef4ede9b2d6a3ea465f79a9b5cbcc821afbccae Signed-off-by: Justin Choquette --- src/dashboard/views.py | 53 ++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 43 insertions(+), 10 deletions(-) (limited to 'src/dashboard/views.py') diff --git a/src/dashboard/views.py b/src/dashboard/views.py index 2942d59..f250a3c 100644 --- a/src/dashboard/views.py +++ b/src/dashboard/views.py @@ -16,8 +16,11 @@ from django.db.models import Q from datetime import datetime import pytz -from account.models import Lab +from account.models import Lab, UserProfile +from api.utils import get_ipa_migration_form, ipa_query_user +from api.views import ipa_conflict_account from booking.models import Booking +from dashboard.forms import * from laas_dashboard import settings @@ -72,25 +75,55 @@ def host_profile_detail_view(request): def landing_view(request): user = request.user + ipa_migrator = { + "exists": "false" # Jinja moment + } if not user.is_anonymous: bookings = Booking.objects.filter( Q(owner=user) | Q(collaborators=user), end__gte=datetime.now(pytz.utc) ) + profile = UserProfile.objects.get(user=user) + if (not profile.ipa_username): + ipa_migrator = get_ipa_migration_form(user, profile) + ipa_migrator["exists"] = "true" + else: bookings = None + print("IPA migrator is", ipa_migrator) LFID = True if settings.AUTH_SETTING == 'LFID' else False - return render( - request, - 'dashboard/landing.html', - { - 'title': "Welcome to the Lab as a Service Dashboard", - 'bookings': bookings, - 'LFID': LFID - } - ) + if request.method == "GET": + return render( + request, + 'dashboard/landing.html', + { + 'title': "Welcome to the Lab as a Service Dashboard", + 'bookings': bookings, + 'LFID': LFID, + 'ipa_migrator': ipa_migrator, + } + ) + + # Using this for the special case in the ipa_migrator + if request.method == 'POST': + existing_profile = ipa_query_user(request.POST['ipa_username']) + print("exists already?", existing_profile != None) + if (existing_profile != None): + return render( + request, + 'dashboard/landing.html', + { + 'title': "Welcome to the Lab as a Service Dashboard", + 'bookings': bookings, + 'LFID': LFID, + 'ipa_migrator': ipa_migrator, + 'error': "Username is already taken" + } + ) + else: + return ipa_conflict_account(request) class LandingView(TemplateView): template_name = "dashboard/landing.html" -- cgit 1.2.3-korg