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

« back to all changes in this revision

Viewing changes to lib/common/makeuser.py

  • Committer: mattgiuca
  • Date: 2008-02-15 03:40:10 UTC
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:469
db.py: Changed interface (again) to user management methods: Changed the dict
argument to **kwargs.
(Did not do this for the low-level db methods, as all accesses to them should
just be passing a dict anyway).

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.
122
162
        os.mkdir(userhomedir)
123
163
        # Chown (and set the GID to the same as the UID).
124
164
        os.chown(userhomedir, uid, uid)
125
 
        # Chmod to rwx------ (700)
126
 
        os.chmod(userhomedir, stat.S_IRWXU)
 
165
        # Chmod to rwxr-xr-x (755)
 
166
        os.chmod(userhomedir, 0755)
127
167
        return userhomedir
128
168
 
129
169
def linktree(src, dst):
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,
 
221
    dbconn.create_user(login, password, uid, email, nick, fullname, rolenm,
182
222
        studentid)
183
223
    dbconn.close()