Example #1
0
 def __init__(self, request=None):
     # Only do webauth and issue cud-requests if the session variable not found      
     if not request.session.has_key('DF_USER_SSO_ID'):        
         user_logged_in_name = None
         df_user_sso_id = None
         
         if os.environ.has_key('DF_REMOTE_USER'):
             df_user_sso_id = os.environ.get('DF_REMOTE_USER')
             
         cud_authenticator = settings.get('main:cud_proxy.host')
         cudReq = CUDRequest(cud_proxy_host=cud_authenticator,filter= {'sso_username':df_user_sso_id})
         
         user_logged_in_name = str(cudReq.get_fullName())
         user_email = str(cudReq.get_email())
         
         if not request.session.exists(request.session.session_key):
                     request.session.create()
     #set up the session variables
         request.session['DF_USER_SSO_ID'] = df_user_sso_id
         request.session['DF_USER_FULL_NAME'] = user_logged_in_name
         request.session['DF_USER_EMAIL'] = user_email
         
     #Add the user to the database if already not registered
         try:
             users = Users.objects.filter(sso_id=df_user_sso_id)
             if len(users) == 0:
                 request.session['DF_USER_ROLE'] = "user"
                 newuser = Users()
                 newuser.sso_id = request.session['DF_USER_SSO_ID']
                 newuser.username = request.session['DF_USER_FULL_NAME']
                 newuser.role = request.session['DF_USER_ROLE']
                 newuser.email = request.session['DF_USER_EMAIL']
                 newuser.save()
             else:
                 for user in users:
                     request.session['DF_USER_ROLE'] = user.role           
         except Exception:
            self.authenticated=False           
         
         request.session.modified = True
          # Save the session key in DFSessions
         try:
                 usersession= DFSessions.objects.get(session_id=request.session.session_key)                      
                 #usersession.session_id = request.session.session_key
                 #usersession.save()
         except DFSessions.DoesNotExist,e:
                 usersession =  DFSessions()
                 usersession.sso_id= request.session['DF_USER_SSO_ID']
                 usersession.session_id = request.session.session_key
                 usersession.save()
         except Exception,e:
                 logger.error("User session could not be saved in DF.")
Example #2
0
               try:
                    user = Users.objects.get(sso_id=request.POST.get("user_sso_id"))         
                    context['message']="Sorry, the user " + request.POST.get("user_sso_id") +" already exists." 
                    context['status']="error"
                    return redirect("/admin?message="+context['message']+"&status="+context['status'])              
               except Users.DoesNotExist,e:
                    cud_authenticator = settings.get('main:cud_proxy.host')
                    context["user_sso_id"] = request.POST.get("user_sso_id")                 
                    context["user_role"] = request.POST.get("user_role")                    
                    cudReq = CUDRequest(cud_proxy_host=cud_authenticator, filter={'sso_username':context["user_sso_id"]})            
                    context["user_sso_name"]  = str(cudReq.get_fullName())
                    context["user_sso_email"] = str(cudReq.get_email())
                    # Set the role to default to 'user'
                                       
                    newuser = Users()
                    newuser.sso_id = context["user_sso_id"]
                    newuser.username = context["user_sso_name"]  
                    newuser.role = context["user_role"] 
                    newuser.email = context["user_sso_email"] 
                    newuser.save()
                    
                    context['message']="Thanks, "+ context["user_sso_id"] +" has been successfully added."
                    context['status']="success"
                    return redirect("/admin/users/edit?user_sso_id="+ request.POST.get("user_sso_id")+"&message="+context['message']+"&status="+context['status'])       
                           
               except Exception,e:                
                    logger.error("Oops, an error occurred, sorry...")
                    context['message']="Oops, an error occurred, sorry..." 
                    context['status']="error"
                    return redirect("/admin?"+"message="+context['message']+"&status="+context['status'])