def mw_request_duoUsage(request): from a_citizen_02.models import a_citizen_02 if request.META['HTTP_HOST'] == settings.FACEBOOK_HTTP_HOST: request.META['duo_Usage'] = 'FACEBOOK' request.META['duo_mapHost'] = settings.DIRECT_HTTP_HOST request.META['duo_Direct'] = False request.META['duo_FormActionPrepend'] = 'http://apps.new.facebook.com' # 'http://apps.facebook.com' request.META['duo_citizen'] = a_citizen_02.getCurrentFromFacebook(request) # If 'duo_citizen' returned isnt an instance of a_citizen_02 then getCurrentFromFacebook failed. # Probably because the current FB user isn't logged in and hasn't given access to the application. # In that case redirect them to the output returned from getCurrentFromFacebook as this is the # standard facebook login url for this app if not isinstance(request.META['duo_citizen'], a_citizen_02): return request.META['duo_citizen'] # Force language to Facebook users preference if 'fb_sig_locale' in request.POST: from django.utils import translation translation.activate(request.POST['fb_sig_locale']) request.LANGUAGE_CODE = translation.get_language() elif request.META['HTTP_HOST'] == settings.DIRECT_HTTP_HOST or request.META['HTTP_HOST'] == settings.DIRECT_HTTP_HOST[4:]: request.META['duo_Usage'] = 'DIRECT' request.META['duo_mapHost'] = request.META['HTTP_HOST'] request.META['duo_Direct'] = True request.META['duo_FormActionPrepend'] = 'http://'+request.META['HTTP_HOST'] request.META['duo_citizen'] = a_citizen_02.getCurrentFromDirect(request) # print "*** request.META['duo_citizen'] = %s" % (request.META['duo_citizen']) else: contextDict = {} outString = "Unknown request.META['HTTP_HOST'] = (%s), settings.DIRECT_HTTP_HOST = (%s)" % (request.META['HTTP_HOST'], settings.DIRECT_HTTP_HOST) contextDict['main_1'] = outString # rest is a hack to allow this to continue gracefully. previously to this it would error out into an Apache error which # really didn't help find the problem. from a_base_02.models import secDict request.META['citizen_rights'] = secDict['s_guest'] request.META['duo_Usage'] = 'DIRECT' request.META['duo_mapHost'] = request.META['HTTP_HOST'] request.META['duo_Direct'] = True request.META['duo_FormActionPrepend'] = 'http://'+request.META['HTTP_HOST'] request.META['duo_citizen'] = a_citizen_02.getCurrentFromDirect(request) return a_base_02.processTemplate_01(request, 'BASE.html', contextDict, mode='view') engine_permissions.setUserPermissions(request) return None
def loginForm(request, view_func, view_args, view_kwargs): loginContextDict = {} formClass = Form_engine_menu_a_Login form_action = request.META['duo_FormActionPrepend'] + request.META['PATH_INFO'] resultDict = a_citizen_02.processForm_01(request, formClass, None, 'a_citizen_02/templates/FORM_Login.html', resetFormOnSuccess=True, form_action=form_action) if resultDict['success']: # make sure the user exists user = authenticate(username=resultDict['cleanData']['username'], password=resultDict['cleanData']['password']) if user is not None: if user.is_active: from a_library_02 import engine_permissions from a_mgrApplication_03.models import a_mgrApplication_03 # log them in login(request, user) request.META['duo_citizen'] = a_citizen_02.getCurrentFromDirect(request) engine_permissions.setUserPermissions(request) a_mgrApplication_03.mw_request_citizenDetails(request) formResultDict = {'redirect':True, 'display':'dislay BLOCK_LoggedIn'} else: # generate error if that user account is no longer active error_message = "Your account has been disabled!" formResultDict = {'redirect':False,'display':resultDict['out'],'error':error_message} else: # generate error if the user could not be logged in error_message = "Your username or password was incorrect." formResultDict = {'redirect':False,'display':resultDict['out'],'error':error_message} else: error_message = "" formResultDict = {'redirect':False,'display':resultDict['out'],'error':error_message} if not formResultDict['redirect']: loginContextDict['form_itself'] = formResultDict['display'] loginContextDict['form_errors'] = formResultDict['error'] return a_citizen_02.processTemplate_01(request, 'a_citizen_02/templates/BLOCK_LogIn.html', loginContextDict) else: return ' '