Rev 1225: Abstract away auth code. in http://people.samba.org/bzr/jelmer/bzr-svn/0.4/

Jelmer Vernooij jelmer at samba.org
Sun Jun 15 02:29:39 BST 2008


At http://people.samba.org/bzr/jelmer/bzr-svn/0.4/

------------------------------------------------------------
revno: 1225
revision-id: jelmer at samba.org-20080615012938-r19j03lxuer6yvzr
parent: jelmer at samba.org-20080615012152-9mw5elwogazk0y49
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.4
timestamp: Sun 2008-06-15 03:29:38 +0200
message:
  Abstract away auth code.
modified:
  auth.py                        auth.py-20071209174622-w8d42k6nm5yhxvi8-1
  ra.py                          ra.py-20080615005305-t5221niknu8rm6bt-1
=== modified file 'auth.py'
--- a/auth.py	2008-06-15 01:18:07 +0000
+++ b/auth.py	2008-06-15 01:29:38 +0000
@@ -21,7 +21,9 @@
 from bzrlib.plugins.svn.ra import (get_username_prompt_provider, 
                                    get_simple_prompt_provider,
                                    get_ssl_server_trust_prompt_provider,
-                                   get_ssl_client_cert_pw_prompt_provider)
+                                   get_ssl_client_cert_pw_prompt_provider,
+                                   Auth
+                                   )
 
 import svn.core
 from svn.core import (svn_auth_cred_username_t, 
@@ -33,6 +35,9 @@
 import urlparse
 import urllib
 
+AUTH_PARAM_DEFAULT_USERNAME = 'svn:auth:username'
+AUTH_PARAM_DEFAULT_PASSWORD = 'svn:auth:password'
+
 SSL_NOTYETVALID = 0x00000001
 SSL_EXPIRED     = 0x00000002
 SSL_CNMISMATCH  = 0x00000004
@@ -192,13 +197,11 @@
         providers += auth_config.get_svn_auth_providers()
         providers += [get_ssl_client_cert_pw_provider(1)]
 
-    auth_baton = svn.core.svn_auth_open(providers)
+    auth_baton = Auth(providers)
     if creds is not None:
-        (auth_baton.user, auth_baton.password) = urllib.splitpasswd(creds)
+        (user, password) = urllib.splitpasswd(creds)
         if auth_baton.user is not None:
-            svn.core.svn_auth_set_parameter(auth_baton, 
-                svn.core.SVN_AUTH_PARAM_DEFAULT_USERNAME, auth_baton.user)
+            auth_baton.set_parameter(AUTH_PARAM_DEFAULT_USERNAME, user)
         if auth_baton.password is not None:
-            svn.core.svn_auth_set_parameter(auth_baton, 
-                svn.core.SVN_AUTH_PARAM_DEFAULT_PASSWORD, auth_baton.password)
-    return auth_baton
+            auth_baton.set_parameter(AUTH_PARAM_DEFAULT_PASSWORD, password)
+    return auth_baton.auth_baton

=== modified file 'ra.py'
--- a/ra.py	2008-06-15 01:21:52 +0000
+++ b/ra.py	2008-06-15 01:29:38 +0000
@@ -21,3 +21,17 @@
 get_ssl_server_trust_prompt_provider = svn.core.svn_auth_get_ssl_server_trust_prompt_provider
 
 DIRENT_KIND = 0x0001
+
+class Auth:
+    def __init__(self, providers=[]):
+        self.providers = providers
+        self.auth_baton = svn.core.svn_auth_open(self.providers)
+        self.parameters = {}
+        self.auth_baton._base = self.auth_baton # evil hack
+
+    def set_parameter(self, name, value):
+        self.parameters[name] = value
+        svn.core.svn_auth_set_parameter(self.auth_baton, name, value)
+
+    def get_parameter(self, name):
+        return svn.core.svn_auth_get_parameter(self.auth_baton, name)




More information about the bazaar-commits mailing list