Browse Source

Standardized session variable names

pull/160/head
Mike Olund 8 years ago
parent
commit
200ca12931
4 changed files with 23 additions and 22 deletions
  1. +7
    -8
      edivorce/apps/core/middleware/bceid_middleware.py
  2. +2
    -2
      edivorce/apps/core/templates/overview.html
  3. +2
    -2
      edivorce/apps/core/views/localdev.py
  4. +12
    -10
      edivorce/apps/core/views/main.py

+ 7
- 8
edivorce/apps/core/middleware/bceid_middleware.py View File

@ -17,18 +17,17 @@ class BceidUser(object):
class BceidMiddleware(object):
def process_request(self, request):
localdev = settings.DEPLOYMENT_TYPE == 'localdev'
# get SiteMinder variables from the headers first, then from the session
smgov_userguid = request.META.get('HTTP_SMGOV_USERGUID', request.session.get('SMGOV_USERGUID',False))
smgov_userdisplayname = request.META.get('HTTP_SMGOV_USERDISPLAYNAME', request.session.get('SMGOV_USERDISPLAYNAME', False))
smgov_userguid = request.META.get('HTTP_SMGOV_USERGUID', request.session.get('smgov_userguid', False))
smgov_userdisplayname = request.META.get('HTTP_SMGOV_USERDISPLAYNAME', request.session.get('smgov_userdisplayname', False))
# make sure the request didn't bypass the proxy
if not localdev and not self.__request_came_from_proxy(request):
if settings.DEPLOYMENT_TYPE != 'localdev' and not self.__request_came_from_proxy(request):
print("Redirecting to " + settings.PROXY_BASE_URL + request.path, file=sys.stderr)
return redirect(settings.PROXY_BASE_URL + request.path)
if not localdev and smgov_userguid:
if settings.DEPLOYMENT_TYPE != 'localdev' and smgov_userguid:
# 1. Real BCeID user / logged in
request.bceid_user = BceidUser(
@ -38,14 +37,14 @@ class BceidMiddleware(object):
display_name=smgov_userdisplayname
)
elif localdev and request.session.get('fake-bceid-guid', False):
elif settings.DEPLOYMENT_TYPE == 'localdev' and request.session.get('fake_bceid_guid', False):
# 2. Fake BCeID user / logged in
request.bceid_user = BceidUser(
guid=request.session.get('fake-bceid-guid'),
guid=request.session.get('fake_bceid_guid'),
is_authenticated=True,
user_type='FAKE',
display_name=request.session.get('login-name', '')
display_name=request.session.get('login_name', '')
)
else:


+ 2
- 2
edivorce/apps/core/templates/overview.html View File

@ -94,7 +94,7 @@
</div>
{% if not request.session.FIRST_LOGIN and not request.session.VIEWED_DASHBOARD_DURING_SESSION %}
{% if not request.session.first_login and not request.session.viewed_dashboard_during_session %}
<div id="questions_modal" class="modal fade" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
@ -114,7 +114,7 @@
</div>
</div>
</div>
{% elif request.session.FIRST_LOGIN and not request.session.VIEWED_DASHBOARD_DURING_SESSION %}
{% elif request.session.first_login and not request.session.viewed_dashboard_during_session %}
<div id="terms_modal" class="modal fade" tabindex="-1" role="dialog" data-backdrop="static">
<div class="modal-dialog" role="document">
<div class="modal-content">


+ 2
- 2
edivorce/apps/core/views/localdev.py View File

@ -23,8 +23,8 @@ def bceid(request):
fake_guid = uuid.UUID(hex_name.rjust(32, '0')).urn[9:]
# save the guid in a session variable
request.session['login-name'] = login_name
request.session['fake-bceid-guid'] = fake_guid
request.session['login_name'] = login_name
request.session['fake_bceid_guid'] = fake_guid
return redirect(settings.PROXY_BASE_URL + settings.FORCE_SCRIPT_NAME[:-1] + '/login')


+ 12
- 10
edivorce/apps/core/views/main.py View File

@ -16,10 +16,13 @@ def home(request):
"""
This is the homepage
"""
# HTTP_SM_USER is available on both unsecure and secure pages.
# If it has a value then we know the user is logged into BCeID/siteminder
siteminder_is_authenticated = request.META.get('HTTP_SM_USER', '') != ''
# if the user is returning from BCeID registration, then log them in to the site
sm_authenticated = request.META.get('HTTP_SM_USERDN', '') != ''
if sm_authenticated and request.session.get('went-to-register', False) == True:
request.session['went-to-register'] = False
if siteminder_is_authenticated and request.session.get('went_to_register', False) == True:
request.session['went_to_register'] = False
return redirect(settings.PROXY_BASE_URL + settings.FORCE_SCRIPT_NAME[:-1] + '/login')
return render(request, 'intro.html', context={'hide_nav': True})
@ -81,7 +84,7 @@ def register(request):
if settings.DEPLOYMENT_TYPE == 'localdev':
return render(request, 'localdev/register.html')
else:
request.session['went-to-register'] = True
request.session['went_to_register'] = True
return redirect(settings.REGISTER_URL)
@ -91,7 +94,7 @@ def login(request):
logged into BCeID will get a login page. Users who are logged into
BCeID will be redirected to the dashboard
"""
if settings.DEPLOYMENT_TYPE == 'localdev' and not request.session.get('fake-bceid-guid'):
if settings.DEPLOYMENT_TYPE == 'localdev' and not request.session.get('fake_bceid_guid'):
return redirect(settings.PROXY_BASE_URL + settings.FORCE_SCRIPT_NAME[:-1] + '/bceid')
else:
# Save SiteMinder headers to session variables. /login* is the only actual
@ -103,9 +106,8 @@ def login(request):
request.session['SMGOV_USERDISPLAYNAME'] = request.META.get('HTTP_SMGOV_USERDISPLAYNAME')
# get the Guid that was set in the middleware
guid = request.bceid_user.guid
if guid is None:
if request.bceid_user.guid is None:
# Fix for weird siteminder behaviour......
# If a user is logged into an IDIR then they can see the login page
# but the SMGOV headers are missing. If this is the case, then log them out
# of their IDIR, and redirect them back to here again....
@ -119,7 +121,7 @@ def login(request):
# some later messaging needs to be shown or hidden based on whether
# or not this is a returning user
request.session["FIRST_LOGIN"] = created
request.session["first_login"] = created
if timezone.now() - user.last_login > datetime.timedelta(minutes=1):
user.last_login = timezone.now()
@ -159,7 +161,7 @@ def overview(request):
response = render(request, 'overview.html', context=responses_dict_by_step)
# set this session variable after the page is already rendered
request.session['VIEWED_DASHBOARD_DURING_SESSION'] = True
request.session['viewed_dashboard_during_session'] = True
return response


Loading…
Cancel
Save