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

« back to all changes in this revision

Viewing changes to lib/common/makeuser.py

  • Committer: drtomc
  • Date: 2008-02-14 23:37:08 UTC
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:467
makeuser: Add some of the helper functions for activating users.
setup: Add some missing svn config.

Show diffs side-by-side

added added

removed removed

Lines of Context:
31
31
 
32
32
# TODO: When creating a new home directory, chown it to its owner
33
33
 
 
34
import md5
34
35
import os
35
36
import stat
36
37
import shutil
 
38
import uuid
37
39
import warnings
38
40
 
39
41
import conf
40
42
import db
41
43
 
 
44
def make_svn_repo(login):
 
45
    """Create a repository for the given user.
 
46
    """
 
47
    path = os.path.join(conf.svn_repo_path, login)
 
48
    res = os.system("svnadmin create '%s'" % path)
 
49
    if res != 0:
 
50
        raise Exception("Cannot create repository for %s" % login)
 
51
 
 
52
def make_svn_config(login):
 
53
    """Add an entry to the apache-svn config file for the given user.
 
54
    """
 
55
    f = open(conf.svn_conf, "a")
 
56
    f.write("[%s:/]\n" % login)
 
57
    f.write("  %s = rw\n" % login)
 
58
    f.write("  @tutor = r\n")
 
59
    f.write("  @lecturer = rw\n")
 
60
    f.write("  @admin = rw\n")
 
61
    f.write("\n")
 
62
    f.close()
 
63
 
 
64
def make_svn_auth(login):
 
65
    """Setup svn authentication for the given user.
 
66
       FIXME: create local.auth entry
 
67
    """
 
68
    passwd = md5.new(uuid.uuid4().bytes).digest().encode('hex')
 
69
    if os.path.exists(conf.svn_auth_ivle):
 
70
        create = ""
 
71
    else:
 
72
        create = "c"
 
73
 
 
74
    db.DB().update_user({'svn_pass':passwd})
 
75
 
 
76
    res = os.system("htpasswd -%smb %s %s" % (create,
 
77
                                              conf.svn_auth_ivle,
 
78
                                              login, passwd))
 
79
    if res != 0:
 
80
        raise Exception("Unable to create ivle-auth for %s" % login)
 
81
 
42
82
def make_jail(username, uid, force=True):
43
83
    """Creates a new user's jail space, in the jail directory as configured in
44
84
    conf.py.
165
205
    if errors:
166
206
        raise Exception, errors
167
207
 
168
 
def make_user_db(login, uid, password, nick, fullname, rolenm, studentid,
169
 
    force=True):
 
208
def make_user_db(login, password, uid, email, nick, fullname, rolenm,
 
209
    studentid, force=True):
170
210
    """Creates a user's entry in the database, filling in all the fields.
171
211
    If force is False, throws an exception if the user already exists.
172
212
    If True, overwrites the user's entry in the DB.
178
218
            dbconn.delete_user(login)
179
219
        except:
180
220
            pass
181
 
    dbconn.create_user(login, uid, password, nick, fullname, rolenm, studentid)
 
221
    dbconn.create_user(login, password, uid, email, nick, fullname, rolenm,
 
222
        studentid)
182
223
    dbconn.close()