~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to ivle/svn.py

  • Committer: Matt Giuca
  • Date: 2009-12-15 05:25:57 UTC
  • Revision ID: matt.giuca@gmail.com-20091215052557-p737rn9ewk0m156z
ivle.svn: Now provides the option of not saving credentials for Subversion. create_auth_svn_client_autopass does NOT save by default, as this is undesirable in the jail.

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
 
24
24
import pysvn
25
25
 
26
 
def create_auth_svn_client_autopass(username):
 
26
def create_auth_svn_client_autopass(username, save_credentials=False):
27
27
    """Create a new pysvn client which is set up to automatically authenticate
28
28
    with the supplied user. The user's Subversion password is automatically
29
29
    looked up in the database.
30
30
    (Requires database access -- can't be used inside the jail.)
31
31
    @param username: IVLE/Subversion username.
 
32
    @param save_credentials: Save the user's credentials. Should be False when
 
33
        outside the jail.
32
34
    """
33
35
    # Note: Must do this inside the function, since this file may be used in
34
36
    # the jail, and importing ivle.database crashes in the jail.
37
39
    from ivle.database import User
38
40
    store = ivle.database.get_store(Config())
39
41
    user = store.find(User, User.login==unicode(username)).one()
40
 
    return create_auth_svn_client(username, user.svn_pass)
 
42
    return create_auth_svn_client(username, user.svn_pass, save_credentials)
41
43
 
42
 
def create_auth_svn_client(username, password):
 
44
def create_auth_svn_client(username, password, save_credentials=True):
43
45
    """Create a new pysvn client which is set up to automatically authenticate
44
46
    with the supplied credentials.
45
47
    @param username: IVLE/Subversion username.
46
48
    @param password: Subversion password.
 
49
    @param save_credentials: Save the user's credentials. Should be False when
 
50
        outside the jail.
47
51
    """
48
52
    username = str(username)
49
53
    password = str(password)
59
63
        # If we're being asked again, then it means the credentials failed for
60
64
        # some reason and we should just fail. (This is not desirable, but it's
61
65
        # better than being asked an infinite number of times).
62
 
        return (existing_login != "", username, password, True)
 
66
        return (existing_login != "", username, password, save_credentials)
63
67
 
64
68
    svnclient = pysvn.Client()
65
69
    svnclient.callback_get_login = get_login