diff --git a/rhodecode/authentication/base.py b/rhodecode/authentication/base.py --- a/rhodecode/authentication/base.py +++ b/rhodecode/authentication/base.py @@ -94,6 +94,9 @@ class LazyFormencode(object): class RhodeCodeAuthPluginBase(object): + # UID is used to register plugin to the registry + uid = None + # cache the authentication request for N amount of seconds. Some kind # of authentication methods are very heavy and it's very efficient to cache # the result of a call. If it's set to None (default) cache is off diff --git a/rhodecode/authentication/plugins/auth_crowd.py b/rhodecode/authentication/plugins/auth_crowd.py --- a/rhodecode/authentication/plugins/auth_crowd.py +++ b/rhodecode/authentication/plugins/auth_crowd.py @@ -189,6 +189,7 @@ class CrowdServer(object): class RhodeCodeAuthPlugin(RhodeCodeExternalAuthPlugin): + uid = 'crowd' _settings_unsafe_keys = ['app_password'] def includeme(self, config): @@ -290,5 +291,5 @@ class RhodeCodeAuthPlugin(RhodeCodeExter def includeme(config): - plugin_id = 'egg:rhodecode-enterprise-ce#{}'.format('crowd') + plugin_id = 'egg:rhodecode-enterprise-ce#{}'.format(RhodeCodeAuthPlugin.uid) plugin_factory(plugin_id).includeme(config) diff --git a/rhodecode/authentication/plugins/auth_headers.py b/rhodecode/authentication/plugins/auth_headers.py --- a/rhodecode/authentication/plugins/auth_headers.py +++ b/rhodecode/authentication/plugins/auth_headers.py @@ -75,7 +75,7 @@ class HeadersSettingsSchema(AuthnPluginS class RhodeCodeAuthPlugin(RhodeCodeExternalAuthPlugin): - + uid = 'headers' def includeme(self, config): config.add_authn_plugin(self) config.add_authn_resource(self.get_id(), HeadersAuthnResource(self)) @@ -226,5 +226,5 @@ class RhodeCodeAuthPlugin(RhodeCodeExter def includeme(config): - plugin_id = 'egg:rhodecode-enterprise-ce#{}'.format('headers') + plugin_id = 'egg:rhodecode-enterprise-ce#{}'.format(RhodeCodeAuthPlugin.uid) plugin_factory(plugin_id).includeme(config) diff --git a/rhodecode/authentication/plugins/auth_jasig_cas.py b/rhodecode/authentication/plugins/auth_jasig_cas.py --- a/rhodecode/authentication/plugins/auth_jasig_cas.py +++ b/rhodecode/authentication/plugins/auth_jasig_cas.py @@ -66,6 +66,7 @@ class JasigCasSettingsSchema(AuthnPlugin class RhodeCodeAuthPlugin(RhodeCodeExternalAuthPlugin): + uid = 'jasig_cas' def includeme(self, config): config.add_authn_plugin(self) @@ -168,5 +169,5 @@ class RhodeCodeAuthPlugin(RhodeCodeExter def includeme(config): - plugin_id = 'egg:rhodecode-enterprise-ce#{}'.format('jasig_cas') + plugin_id = 'egg:rhodecode-enterprise-ce#{}'.format(RhodeCodeAuthPlugin.uid) plugin_factory(plugin_id).includeme(config) diff --git a/rhodecode/authentication/plugins/auth_ldap.py b/rhodecode/authentication/plugins/auth_ldap.py --- a/rhodecode/authentication/plugins/auth_ldap.py +++ b/rhodecode/authentication/plugins/auth_ldap.py @@ -379,6 +379,7 @@ class LdapSettingsSchema(AuthnPluginSett class RhodeCodeAuthPlugin(RhodeCodeExternalAuthPlugin): + uid = 'ldap' # used to define dynamic binding in the DYNAMIC_BIND_VAR = '$login' _settings_unsafe_keys = ['dn_pass'] @@ -529,5 +530,5 @@ class RhodeCodeAuthPlugin(RhodeCodeExter def includeme(config): - plugin_id = 'egg:rhodecode-enterprise-ce#{}'.format('ldap') + plugin_id = 'egg:rhodecode-enterprise-ce#{}'.format(RhodeCodeAuthPlugin.uid) plugin_factory(plugin_id).includeme(config) diff --git a/rhodecode/authentication/plugins/auth_pam.py b/rhodecode/authentication/plugins/auth_pam.py --- a/rhodecode/authentication/plugins/auth_pam.py +++ b/rhodecode/authentication/plugins/auth_pam.py @@ -72,6 +72,7 @@ class PamSettingsSchema(AuthnPluginSetti class RhodeCodeAuthPlugin(RhodeCodeExternalAuthPlugin): + uid = 'pam' # PAM authentication can be slow. Repository operations involve a lot of # auth calls. Little caching helps speedup push/pull operations significantly AUTH_CACHE_TTL = 4 @@ -166,5 +167,5 @@ class RhodeCodeAuthPlugin(RhodeCodeExter def includeme(config): - plugin_id = 'egg:rhodecode-enterprise-ce#{}'.format('pam') + plugin_id = 'egg:rhodecode-enterprise-ce#{}'.format(RhodeCodeAuthPlugin.uid) plugin_factory(plugin_id).includeme(config) diff --git a/rhodecode/authentication/plugins/auth_rhodecode.py b/rhodecode/authentication/plugins/auth_rhodecode.py --- a/rhodecode/authentication/plugins/auth_rhodecode.py +++ b/rhodecode/authentication/plugins/auth_rhodecode.py @@ -44,6 +44,7 @@ class RhodecodeAuthnResource(AuthnPlugin class RhodeCodeAuthPlugin(RhodeCodeAuthPluginBase): + uid = 'rhodecode' def includeme(self, config): config.add_authn_plugin(self) @@ -144,5 +145,5 @@ class RhodeCodeAuthPlugin(RhodeCodeAuthP def includeme(config): - plugin_id = 'egg:rhodecode-enterprise-ce#{}'.format('rhodecode') + plugin_id = 'egg:rhodecode-enterprise-ce#{}'.format(RhodeCodeAuthPlugin.uid) plugin_factory(plugin_id).includeme(config) diff --git a/rhodecode/authentication/plugins/auth_token.py b/rhodecode/authentication/plugins/auth_token.py --- a/rhodecode/authentication/plugins/auth_token.py +++ b/rhodecode/authentication/plugins/auth_token.py @@ -47,6 +47,7 @@ class RhodeCodeAuthPlugin(RhodeCodeAuthP """ Enables usage of authentication tokens for vcs operations. """ + uid = 'token' def includeme(self, config): config.add_authn_plugin(self) @@ -152,5 +153,5 @@ class RhodeCodeAuthPlugin(RhodeCodeAuthP def includeme(config): - plugin_id = 'egg:rhodecode-enterprise-ce#{}'.format('token') + plugin_id = 'egg:rhodecode-enterprise-ce#{}'.format(RhodeCodeAuthPlugin.uid) plugin_factory(plugin_id).includeme(config)