Пример #1
0
    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
Пример #2
0
    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 ' '