Hi there,

I'm was trying to use custom columns in my user table using TG2 (is_active
column for a user)

I decided to overload the SQLAlchemyAuthenticator to be able to check this
additional column value.
I passed my custom class instance to authenticators argument but the main
(SQLAlchemyAuthenticator) is always used and there is
no way to disable it.
I added a keyword argument named 'use_main_authenticator' witch - if
authenticators keyword is used - discard the main one and only used passed
instance.

Regards,
F.

Index: repoze/what/plugins/quickstart/__init__.py
===================================================================
--- repoze/what/plugins/quickstart/__init__.py  (revision 9436)
+++ repoze/what/plugins/quickstart/__init__.py  (working copy)
@@ -236,16 +236,23 @@
     if permission_adapter:
         permission_adapters = {'sql_auth': permission_adapter}

+    use_main_authenticator = True
     # Setting the repoze.who authenticators:
-    sqlauth = SQLAlchemyAuthenticatorPlugin(user_class, dbsession)
-    sqlauth.translations.update(plugin_translations['authenticator'])
     if 'authenticators' not in who_args:
         who_args['authenticators'] = []
-    who_args['authenticators'].append(('sqlauth', sqlauth))
+    else:
+        if 'use_main_authenticator' in who_args and \
+           who_args['use_main_authenticator'] == False:
+            use_main_authenticator = False

+    if use_main_authenticator != False:
+        sqlauth = SQLAlchemyAuthenticatorPlugin(user_class, dbsession)
+        sqlauth.translations.update(plugin_translations['authenticator'])
+        who_args['authenticators'].append(('sqlauth', sqlauth))
+
     cookie = AuthTktCookiePlugin(cookie_secret, cookie_name,
-                                 timeout=cookie_timeout,
-                                 reissue_time=cookie_reissue_time)
+                         timeout=cookie_timeout,
+                         reissue_time=cookie_reissue_time)

     # Setting the repoze.who identifiers
     if 'identifiers' not in who_args:
_______________________________________________
Repoze-dev mailing list
Repoze-dev@lists.repoze.org
http://lists.repoze.org/listinfo/repoze-dev

Reply via email to