From f000ea5c5a239002eb83add736093a1d4c85805a Mon Sep 17 00:00:00 2001 From: Patrick Uiterwijk Date: Jul 09 2016 08:21:15 +0000 Subject: Use class variables for initialization of OpenIDC Extensions This allows for easier extension definitions since they don't need to write code if the extension is only used for defining additional token scopes. Signed-off-by: Patrick Uiterwijk Reviewed-by: Pierre-Yves Chibon --- diff --git a/ipsilon/providers/openidc/plugins/common.py b/ipsilon/providers/openidc/plugins/common.py index 55f01c4..c4bd0cb 100644 --- a/ipsilon/providers/openidc/plugins/common.py +++ b/ipsilon/providers/openidc/plugins/common.py @@ -7,12 +7,14 @@ from ipsilon.util.log import Log class OpenidCExtensionBase(Log): - - def __init__(self, provider, name, display_name, scopes): - self.name = name - self.display_name = display_name - # A mapping of scope to display string for supported scopes - self.scopes = scopes + name = None + display_name = None + # A mapping of scope to dict with scope info + scopes = {} + + def __init__(self, provider): + if self.name is None: + raise NotImplementedError('Name missing for OpenIDC extensions') self.enabled = False self.provider = None @@ -23,7 +25,10 @@ class OpenidCExtensionBase(Log): return self.scopes.keys() def get_display_name(self): - return self.display_name + if self.display_name: + return self.display_name + else: + return self.name def get_display_data(self, scopes): if not self.enabled: diff --git a/ipsilon/providers/openidc/plugins/ipsilon.py b/ipsilon/providers/openidc/plugins/ipsilon.py index 377380d..ca72c48 100644 --- a/ipsilon/providers/openidc/plugins/ipsilon.py +++ b/ipsilon/providers/openidc/plugins/ipsilon.py @@ -6,15 +6,10 @@ from ipsilon.providers.openidc.plugins.common import OpenidCExtensionBase class OpenidCExtension(OpenidCExtensionBase): - - def __init__(self, provider, *pargs): - name = 'ipsilon' - display_name = 'Ipsilon Token API' - scopes = { - 'ipsilon_token': 'Ipsilon token verification' + name = 'ipsilon' + display_name = 'Ipsilon Token API' + scopes = { + 'ipsilon_token': { + 'display_name': 'Ipsilon token verification' } - - super(OpenidCExtension, self).__init__(provider, - name, - display_name, - scopes) + }