pep8ness
This commit is contained in:
parent
bd216c7ab7
commit
75382c9ab1
|
@ -2,18 +2,19 @@ from django.db import models
|
|||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.conf import settings
|
||||
|
||||
|
||||
class UserSAMLIdentifier(models.Model):
|
||||
user = models.ForeignKey(
|
||||
verbose_name=_('user'),
|
||||
to=settings.AUTH_USER_MODEL,
|
||||
related_name='saml_identifiers')
|
||||
issuer = models.TextField(
|
||||
verbose_name=_('Issuer'))
|
||||
user = models.ForeignKey(
|
||||
verbose_name=_('user'),
|
||||
to=settings.AUTH_USER_MODEL,
|
||||
related_name='saml_identifiers')
|
||||
issuer = models.TextField(
|
||||
verbose_name=_('Issuer'))
|
||||
name_id = models.TextField(
|
||||
verbose_name=_('SAML identifier'))
|
||||
verbose_name=_('SAML identifier'))
|
||||
created = models.DateTimeField(
|
||||
verbose_name=_('created'),
|
||||
auto_now_add=True)
|
||||
verbose_name=_('created'),
|
||||
auto_now_add=True)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('user SAML identifier')
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
import logging
|
||||
import re
|
||||
import time
|
||||
import datetime
|
||||
import importlib
|
||||
from functools import wraps
|
||||
|
@ -11,7 +9,7 @@ import dateutil.parser
|
|||
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.template.loader import render_to_string
|
||||
from django.utils.timezone import make_aware, utc, now, make_naive, is_aware
|
||||
from django.utils.timezone import make_aware, now, make_naive, is_aware
|
||||
from django.conf import settings
|
||||
import lasso
|
||||
|
||||
|
@ -44,6 +42,7 @@ def create_metadata(request):
|
|||
|
||||
SERVERS = {}
|
||||
|
||||
|
||||
def create_server(request):
|
||||
logger = logging.getLogger(__name__)
|
||||
root = request.build_absolute_uri('/')
|
||||
|
@ -59,7 +58,7 @@ def create_server(request):
|
|||
if isinstance(private_key, (tuple, list)):
|
||||
private_key_password = private_key[1]
|
||||
private_key = private_key[0]
|
||||
else: # no signature
|
||||
else: # no signature
|
||||
private_key = None
|
||||
private_key_password = None
|
||||
server = lasso.Server.newFromBuffers(metadata,
|
||||
|
@ -102,6 +101,7 @@ def create_server(request):
|
|||
SERVERS[root] = server
|
||||
return SERVERS[root]
|
||||
|
||||
|
||||
def create_login(request):
|
||||
server = create_server(request)
|
||||
login = lasso.Login(server)
|
||||
|
@ -109,6 +109,7 @@ def create_login(request):
|
|||
login.setSignatureHint(lasso.PROFILE_SIGNATURE_HINT_FORBID)
|
||||
return login
|
||||
|
||||
|
||||
def get_idp(entity_id):
|
||||
for adapter in get_adapters():
|
||||
if hasattr(adapter, 'get_idp'):
|
||||
|
@ -117,12 +118,14 @@ def get_idp(entity_id):
|
|||
return idp
|
||||
return {}
|
||||
|
||||
|
||||
def get_idps():
|
||||
for adapter in get_adapters():
|
||||
if hasattr(adapter, 'get_idps'):
|
||||
for idp in adapter.get_idps():
|
||||
yield idp
|
||||
|
||||
|
||||
def flatten_datetime(d):
|
||||
d = d.copy()
|
||||
for key, value in d.iteritems():
|
||||
|
@ -130,6 +133,7 @@ def flatten_datetime(d):
|
|||
d[key] = value.isoformat() + 'Z'
|
||||
return d
|
||||
|
||||
|
||||
def iso8601_to_datetime(date_string):
|
||||
'''Convert a string formatted as an ISO8601 date into a time_t
|
||||
value.
|
||||
|
@ -144,20 +148,24 @@ def iso8601_to_datetime(date_string):
|
|||
dt = make_aware(dt)
|
||||
return dt
|
||||
|
||||
|
||||
def get_seconds_expiry(datetime_expiry):
|
||||
return (datetime_expiry - now()).total_seconds()
|
||||
|
||||
|
||||
def to_list(func):
|
||||
@wraps(func)
|
||||
def f(*args, **kwargs):
|
||||
return list(func(*args, **kwargs))
|
||||
return f
|
||||
|
||||
|
||||
def import_object(path):
|
||||
module, name = path.rsplit('.', 1)
|
||||
module = importlib.import_module(module)
|
||||
return getattr(module, name)
|
||||
|
||||
|
||||
@to_list
|
||||
def get_adapters(idp={}):
|
||||
idp = idp or {}
|
||||
|
@ -165,6 +173,7 @@ def get_adapters(idp={}):
|
|||
for adapter in adapters:
|
||||
yield import_object(adapter)()
|
||||
|
||||
|
||||
def get_values(saml_attributes, name):
|
||||
values = saml_attributes.get(name)
|
||||
if values is None:
|
||||
|
@ -173,12 +182,14 @@ def get_values(saml_attributes, name):
|
|||
return (values,)
|
||||
return values
|
||||
|
||||
|
||||
def get_setting(idp, name, default=None):
|
||||
'''Get a parameter from an IdP specific configuration or from the main
|
||||
settings.
|
||||
'''
|
||||
return idp.get(name) or getattr(app_settings, name, default)
|
||||
|
||||
|
||||
def create_logout(request):
|
||||
logger = logging.getLogger(__name__)
|
||||
server = create_server(request)
|
||||
|
@ -190,12 +201,12 @@ def create_logout(request):
|
|||
name_id_name_qualifier = mellon_session.get('name_id_name_qualifier')
|
||||
name_id_sp_name_qualifier = mellon_session.get('name_id_sp_name_qualifier')
|
||||
session_dump = render_to_string('mellon/session_dump.xml', {
|
||||
'entity_id': entity_id,
|
||||
'session_index': session_index,
|
||||
'name_id_format': name_id_format,
|
||||
'name_id_content': name_id_content,
|
||||
'name_id_name_qualifier': name_id_name_qualifier,
|
||||
'name_id_sp_name_qualifier': name_id_sp_name_qualifier,
|
||||
'entity_id': entity_id,
|
||||
'session_index': session_index,
|
||||
'name_id_format': name_id_format,
|
||||
'name_id_content': name_id_content,
|
||||
'name_id_name_qualifier': name_id_name_qualifier,
|
||||
'name_id_sp_name_qualifier': name_id_sp_name_qualifier,
|
||||
})
|
||||
logger.debug('session_dump %s', session_dump)
|
||||
logout = lasso.Logout(server)
|
||||
|
@ -204,5 +215,6 @@ def create_logout(request):
|
|||
logout.setSessionFromDump(session_dump)
|
||||
return logout
|
||||
|
||||
|
||||
def is_nonnull(s):
|
||||
return not '\x00' in s
|
||||
|
|
Loading…
Reference in New Issue