Revision 0e79735c snf-astakos-app/astakos/im/auth_providers.py

b/snf-astakos-app/astakos/im/auth_providers.py
99 99
    def add_url(self):
100 100
        return reverse(self.login_view)
101 101

  
102
    def __init__(self, user=None):
102
    @property
103
    def provider_details(self):
104
        if self.user:
105
            if self.identifier:
106
                self._provider_details = \
107
                    self.user.get_auth_providers().get(module=self.module,
108
                                                       identifier=self.identifier).__dict__
109
            else:
110
                self._provider_details = self.user.get(module=self.module).__dict__
111
        return self._provider_details
112

  
113
    def __init__(self, user=None, identifier=None, provider_details=None):
103 114
        self.user = user
115
        self.identifier = identifier
116

  
117
        self._provider_details = None
118
        if provider_details:
119
            self._provider_details = provider_details
120

  
104 121
        for tpl in ['login_prompt', 'login', 'signup_prompt']:
105 122
            tpl_name = '%s_%s' % (tpl, 'template')
106 123
            override = self.get_setting(tpl_name)
......
254 271
    login_prompt_template = 'im/auth/third_party_provider_generic_login_prompt.html'
255 272

  
256 273

  
257
def get_provider(id, user_obj=None, default=None):
274
def get_provider(id, user_obj=None, default=None, identifier=None, provider_details={}):
258 275
    """
259 276
    Return a provider instance from the auth providers registry.
260 277
    """
261 278
    if not id in PROVIDERS:
262 279
        raise Exception('Invalid auth provider requested "%s"' % id)
263 280

  
264
    return PROVIDERS.get(id, default)(user_obj)
281
    return PROVIDERS.get(id, default)(user_obj, identifier, provider_details)
265 282

  

Also available in: Unified diff