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