From ce3c295615ca486549be280dc25d797f0dc4e63f Mon Sep 17 00:00:00 2001
From: Adam Drake <drakeadam02@gmail.com>
Date: Thu, 2 May 2024 01:49:55 +0100
Subject: [PATCH] Allow un approved AI engineers to log in, but not access the
 AI dashboard

---
 .../__pycache__/views.cpython-310.pyc         | Bin 7247 -> 7025 bytes
 prediction_service/views.py                   |  52 ++++++++----------
 2 files changed, 22 insertions(+), 30 deletions(-)

diff --git a/prediction_service/__pycache__/views.cpython-310.pyc b/prediction_service/__pycache__/views.cpython-310.pyc
index 3be609cd08366637ea0675e461f00e21595e7ef4..be1d08de5a1c486bcfddb4c9560e6468db467560 100644
GIT binary patch
delta 1491
zcmX?a@zIPgpO=@5fq{X6|FKcpC;5$hYE1Pk3=9k)?99NxP~5@5z)-`G#gN5V<WR$q
z#gxLB%~a%&!j!_C$ym!+!kopjfOR254Py$E4Om?*Qw>uVTNZl?OEy!HRS8EHOBN?c
zB!#t?v6i`pIg6{<q=b6`PYpu~+d?Krh7#Tyh7|T1#%AVV2%EzRi35}1OW|y03}(>e
z^1H?C?iv!sT998{QhbZy7q_FQf@@xSW?pJ)(MrZ!ETzS%MOAT=<v3M&96c3W5{omE
z@)L_vCVOz|GF8b;{>UcGosplLs+Uocn^PqZ;!obe%sZK##nPC+NPvNX;g&#VaeQKF
zNk(d3NoI0lNovY1w%pW`jQo@$PLMQveo|Iya!K(m=ER(w$%!n&S+}?xJz-9`#hjj6
za*G#gM1E0bRccBRD@Y$}YEe;sQ4tdZ149uga5Y(Ou@|KlmZlb$++t78&nro-C;>Yl
ziaRkgJ{9IAh9X%828Le>`iTVv`e5fiU=o&-U|?VnV&Y)pV`5|CVHRLwW8?urCLR_J
z<|6sY7g$7G7#SECz!3<tEQKMML6gxBY}QJ~B59B#K<0u4isV4<V*>??qo+0~&Owf3
zVJ=dfe1RpyqeuaZYSzT0{L&I5m|_9OB4q{!22JK$+@Zy(MFB<mX_+~xx7c0tQb7D7
zaRvs4$(^j<48=gIn85xl0<o(&T=P;Cz-stG*6=YfFt}+#6-a_~?O}`K76M6efC#n8
zs_csOMIiqdselB8!ER43N=+<DEm8%Efb4<<IeT$wa&l^MaS<~}9ONlYHi+M~KmwrH
zE>Z`vKrV^m0VSRI0*KQg0Rs*qaOiLprKV>Vm!uY1f!uVIU4zkJ@;i1}9gt<opr8h2
zArJ<IHYmQqL7xH5JK#K{KiQl^H$k<8rG}w~xfzu5SyNa+iMoVs0XsZ5u%@ts#W-ph
zQaGBKf*CY9{fg8;js&^%7Dqv1adCNmQHmxL#OcPM)WPNJ<LDTy3yQ(X3pnLji!?#5
z+|Q{{&shWxJFo%ZKr;jx1&TLFpn#lOBn1)!2M-G*ctBPaflP)(6gU{b1UM|X!M4Tc
z<fmumMS)U)2m=EH7byKP@-cESaWQf*@-TBSaxoQ|PM*PaR1jpjn<nEew&eWW+{}_9
zzR7vqdW<HM=W<8XgCasx0OCk9kTXDvi$IC6NC(6P#nCM`P<G5ODiQ^Wfa2;FPiAp^
zacMzn5h%{UkzJ$@k_1Pz1&D?46Enn5Ae(NnfQk*IxD|qU2$Fo_L6W(f+jx#MGOBI%
z<6FbUC^Y%EL=vOU<Tyz^c~D9NC%jwC#U(|z*m4ppQ;Ukh8CsLCNP6;W$vhEoAb|;x
z!9`OT7#KP?>q-eT%FBZsr3fNG83mGd5y{nHa=f%88zgQf*GVS}fXzS<a+5zwYqLsm
dF><g?R+JHy6yRZG0tK`%2Pm+in2Cvx5df5pLlpo3

delta 1729
zcmexpcHV+7pO=@5fq{X6>Aq3gOvR0SYD|ty3=9k`3=9m;3=9m#N(>APDU2yhnT)lJ
zB@9`N3z!x%)G($n+Ax$b*D$0o*Dy9S2Qz50_}yYH$S*D_zQs@_Gx?#ouxmzsZmM2J
zNp6lNOA#jn1H&!${G_bZ<dWiB%!xTUMIcKwnQpNcr52W^7MI*&PtMOPNv$YZ$xtN3
zz`*cJK|iseKp$k%<bD?6dJd4ASXln^vG6bzi7+rQBr}3s4aLkLS(uBH7#J987_u0$
z7>jgk7_yjB7_*tcEQVUf8pbT<ES40eY^EaR6y_9`OvYNK64orX1?&qMYM4@(Z5T>8
zY8X;jYnVX3D&b6FgXl1v&5*)Am${iSn4yF-g#$!ua{Aq3c6SZ=#qH>+;F_17nU|Vc
zRK&x;z)-}?z`!uMkXgym(k8>uP9ZYCR3Wh_RUs!oJv}u=Au~@QF)u|SFTX?~F;BtK
zQy~?qSy7=9sxncbiq%Fx!_aQ>Bxb96u3Idn#i>QN1Tu@`6H7}nQu9hOlM_o)Q*N>4
zrj}&nr`+NO$rlvmr)B1(-eM`r&q)Obc@ZDTHT)m~6x>CiNY!L65&#K^g9t$o0Saz#
zm=_6yqKOR@agLtSpvVWQ6cS`&W8`7tVB}-sVG?2DU@elFe1Jt{vJPuVpe7^4Ff=1r
z6O-~wOAJ6Jfb11uERthjV9;c~#T{ClS`+|vC%bE23W$G;%h3}Sev?nIezOHxt;tjb
zb|Hve#o?Nlq5x95k`W>*#=yYf232y47aA=2MVVEpDU;u`#c@l5`~^xfMM{$+*cIh&
zF{h`N6v=}`K|ykhEx9N)u_U!f0VJY0c{;nC1IVjI8X!K{US$vqWO)=1C~V`QfeQ&I
zuy?_M#Zi=+o>^RyT4XW#E4wzM{$xcCSsg|6<jKmwz`zbmo`;~x6Pzq#CTDTz)(2Io
z)i7tVWU;2OW-}F8mat{9XEA|9QrLPKYguYovN(z@OE?#B)i9*6FJxk5DB%XB!ElCP
zh7z6{h8pH(h!|%xBS?&q0R*Ayxe)5v7$QMBAm(r*#I1uFN_cA+Qh1t~f*CY<{fa<&
zz6cZow>SzCi;K(ii&8Y1zyd`^pl|^Ne~}6U14C8#<WpQyllhssS$%yH6N4wKG3#m<
zse|$_m#>ebW3VnLF;z)`f>0qNu~;E5Ujf91hNj-+?;P@z?~990HsIv0=PLq78`yFk
zkTswLR3rsrfg+*^6s(XGtqKwY1?nx<)S{yNq9RcKFERv)g3_BND<oBdd;oDUC`zNa
z6EovsSq(iNxqW>M9UX(?bMn(O^CCbASB-&zfs2uck%y6wk%Nhek%v)$k&Tguk&BUw
zi3`l)nY@wnoFK@#Zkmj@*pl;eb2Ced#3oPR(qlB9yq_zg9+aFk1t8us1Gx^QxJVPk
z(gG16XWe20W$FAPghy}jWERI4mlmWJfr6?C<j*2KkaDmuEkG<25CQfoG&h56y2S!2
zfRTJA1WuydkhC5Tk}Tc4g8MilqtfOA-Zfl|l9Od6k{GonH%REogR(^tDAaE;7nc;>
zV#`UaOf4#gl+t`f0+Y{5<cWZjJ(vI)Tr`D&fnnlie@S6Rc~F5|Bm;63D5FC%8YFLl
z#PlaON=dSTW7BZ*0;yyHuo(zKc(SmxwlNnMBZmkN3lF0RBL|a!BoC7SqW~ihBL@?Y
X6b~a46Bi?gFb5+CNCb?TnD`h0yP0;Y

diff --git a/prediction_service/views.py b/prediction_service/views.py
index caf7599..7f5d93a 100644
--- a/prediction_service/views.py
+++ b/prediction_service/views.py
@@ -15,34 +15,36 @@ from django.contrib.auth.models import User
 
 @login_required
 def home(request):
+    if request.user.is_authenticated and request.method == "GET":
 
-    context = {
-        'posts':'',
-    }
-
-    context['posts'] = Post.objects.all()#loads all posts from Post table into the context
+        context = {'posts':'',}
 
-    return render(request, 'prediction_service/home.html',context)
+        context['posts'] = Post.objects.all() #loads all posts from Post table into the context
 
-@login_required
-def homeAI(request):
-    if request.user.is_authenticated and request.method == "GET":
         user = request.user
-        #try:
-        if user.userprofile.role == 'AI Engineer':
-            context = {'posts':'',}
-
-            context['posts'] = Post.objects.all()#loads all posts from Post table into the context
 
-            return render(request, 'prediction_service/home-AI.html',context)
+        # if account is an AI Engineer
+        if user.userprofile.role == 'AI Engineer':
+            # if the ai engineer is approved, then send them to the AI dashboard
+            ai_engineer = AIEngineer.objects.get(user=user.userprofile)
+            if not ai_engineer.is_authorized:
+                messages.error(request, 'You are not authorized to access the AI Dashboard system. Please wait for admin authorization.')
+                return render(request, 'prediction_service/home.html',context)
+            else:
+                return render(request, 'prediction_service/home-AI.html',context)
+            
         else:
-            return HttpResponse(f"<h1> You are logged in and not an AI engineer! you are a {user.userprofile.role}</h1>")
-        # except:
-        #     return HttpResponse("<h1> youre in the except for some reason </h1>")
+            # if the account is not an AI Engineer
+            return render(request, 'prediction_service/home.html',context)
         
     else:
         return HttpResponse("<h1> you are not authenticated but are logged in? </h1>")
 
+@login_required
+def homeAI(request):
+
+    pass
+
 
     
 def about(request):
@@ -92,18 +94,8 @@ def MLAAS_login(request):
         user = authenticate(request, username=username, password=password)
 
         if user is not None:
-            try:
-                if user.userprofile.role == 'AI Engineer':
-                    ai_engineer = AIEngineer.objects.get(user=user.userprofile)
-                    if not ai_engineer.is_authorized:
-                        messages.error(request, 'You are not authorized to access the MLaaS system. Please wait for admin authorization.')
-                        return redirect('MLAAS-login')  # Redirect to login page
-
-                login(request, user)
-                return redirect('MLAAS-home')
-            except:
-                messages.error(request, 'user has no userprofile.')
-                return redirect('MLAAS-login')  # Redirect to login
+            login(request, user)
+            return redirect('MLAAS-home')
 
         else:
             messages.error(request, 'Invalid username or password.')
-- 
GitLab