Ticket #1178: custom_identity_provider.diff

File custom_identity_provider.diff, 1.3 kB (added by aalbrecht, 1 year ago)

Workaround: Use load_class to treat config option as a class path

  • turbogears/identity/__init__.py

    old new  
    1010log = logging.getLogger("turbogears.identity") 
    1111 
    1212import turbogears 
    13 from turbogears.util import request_available 
     13from turbogears.util import request_available, load_class 
    1414from turbogears.identity.exceptions import * 
    1515 
    1616def create_default_provider(): 
     
    1919                                              provider_plugin ) 
    2020 
    2121    log.debug( "Loading provider from plugin: %s", provider_plugin ) 
    22  
     22     
     23    provider_class = None 
    2324    for entrypoint in plugins: 
    24         plugin= entrypoint.load() 
    25         return plugin() 
     25        provider_class = entrypoint.load() 
     26        break 
     27     
     28    if not provider_class: 
     29        provider_class = load_class(provider_plugin) 
    2630 
    27     raise IdentityConfigurationException( "IdentityProvider plugin missing: %s" % 
    28                                           provider_plugin ) 
     31    if not provider_class: 
     32        raise IdentityConfigurationException( "IdentityProvider plugin missing: %s" % 
     33                                              provider_plugin ) 
     34    else: 
     35        return provider_class() 
    2936 
    3037 
    3138class IdentityWrapper(object):