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

« back to all changes in this revision

Viewing changes to ivle/makeuser.py

  • Committer: David Coles
  • Date: 2009-12-08 02:10:26 UTC
  • Revision ID: coles.david@gmail.com-20091208021026-3a27ecdzm49y39me
Configuration documentation - fixing a few references

Show diffs side-by-side

added added

removed removed

Lines of Context:
72
72
        f.write("""
73
73
[%(login)s:/]
74
74
%(login)s = rw
75
 
""" % {'login': u.login.encode('utf-8')})
 
75
""" % {'login': u.login})
76
76
 
77
77
    # Now we need to grant offering tutors and lecturers access to the latest
78
78
    # submissions in their offerings. There are much prettier ways to do this,
102
102
                    User.login,
103
103
                    User.id == Enrolment.user_id,
104
104
                    Enrolment.offering_id == offeringid,
105
 
                    Enrolment.role.is_in((u'tutor', u'lecturer')),
106
 
                    Enrolment.active == True,
 
105
                    Enrolment.role.is_in((u'tutor', u'lecturer'))
107
106
                )
108
107
            )
109
108
 
110
109
        f.write("""
111
110
# Submission %(id)d
112
111
[%(login)s:%(path)s]
113
 
""" % {'login': login.encode('utf-8'), 'id': psid,
114
 
       'path': pspath.encode('utf-8')})
 
112
""" % {'login': login, 'id': psid, 'path': pspath})
115
113
 
116
114
        for viewer_login in offering_viewers_cache[offeringid]:
117
115
            # We don't want to override the owner's write privilege,
118
116
            # so we don't add them to the read-only ACL.
119
117
            if login != viewer_login:
120
 
                f.write("%s = r\n" % viewer_login.encode('utf-8'))
 
118
                f.write("%s = r\n" % viewer_login)
121
119
 
122
120
    f.close()
123
121
    os.rename(temp_name, conf_name)
146
144
                             offering.semester.semester,
147
145
                             group.name])
148
146
 
149
 
        f.write("[%s:/]\n" % reponame.encode('utf-8'))
 
147
        f.write("[%s:/]\n" % reponame)
150
148
        if group.id not in group_members_cache:
151
149
            group_members_cache[group.id] = set()
152
150
        for user in group.members:
153
151
            group_members_cache[group.id].add(user.login)
154
 
            f.write("%s = rw\n" % user.login.encode('utf-8'))
 
152
            f.write("%s = rw\n" % user.login)
155
153
        f.write("\n")
156
154
 
157
155
    # Now we need to grant offering tutors and lecturers access to the latest
187
185
                    User.login,
188
186
                    User.id == Enrolment.user_id,
189
187
                    Enrolment.offering_id == offeringid,
190
 
                    Enrolment.role.is_in((u'tutor', u'lecturer')),
191
 
                    Enrolment.active == True,
 
188
                    Enrolment.role.is_in((u'tutor', u'lecturer'))
192
189
                )
193
190
            )
194
191
 
195
192
        f.write("""
196
193
# Submission %(id)d
197
194
[%(repo)s:%(path)s]
198
 
""" % {'repo': reponame.encode('utf-8'), 'id': psid,
199
 
       'path': pspath.encode('utf-8')})
 
195
""" % {'repo': reponame, 'id': psid, 'path': pspath})
200
196
 
201
197
        for viewer_login in offering_viewers_cache[offeringid]:
202
198
            # Skip existing group members, or they can't write to it any more.
215
211
    """
216
212
    # filename is, eg, /var/lib/ivle/svn/ivle.auth
217
213
    filename = config['paths']['svn']['auth_ivle']
 
214
    passwd = hashlib.md5(uuid.uuid4().bytes).hexdigest()
218
215
    if os.path.exists(filename):
219
216
        create = ""
220
217
    else:
221
218
        create = "c"
222
219
 
223
220
    user = User.get_by_login(store, login)
224
 
 
225
 
    if user.svn_pass is None:
226
 
        passwd = hashlib.md5(uuid.uuid4().bytes).hexdigest()
227
 
        user.svn_pass = unicode(passwd)
 
221
    user.svn_pass = unicode(passwd)
228
222
 
229
223
    res = subprocess.call(['htpasswd', '-%smb' % create,
230
 
                           filename, login, user.svn_pass])
 
224
                           filename, login, passwd])
231
225
    if res != 0 and throw_on_error:
232
226
        raise Exception("Unable to create ivle-auth for %s" % login)
233
227
 
235
229
    if create == "c":
236
230
        chown_to_webserver(filename)
237
231
 
238
 
    return user.svn_pass
 
232
    return passwd
239
233
 
240
234
def make_jail(user, config, force=True):
241
235
    """Create or update a user's jail.
273
267
        # User jail already exists. Blow it away but preserve their home
274
268
        # directory. It should be all that is there anyway, but you never
275
269
        # know!
276
 
        # Ignore warnings about the use of tempnam
 
270
        # Ignore warnings about the use of tmpnam
277
271
        warnings.simplefilter('ignore')
278
272
        homebackup = os.tempnam(tempdir)
279
273
        warnings.resetwarnings()
328
322
    # So we just write root_dir.
329
323
    conf_obj = ivle.config.Config(blank=True)
330
324
    conf_obj.filename = conf_path
331
 
    conf_obj['urls'] = {}
332
325
    conf_obj['urls']['root'] = sys_config['urls']['root']
333
326
    conf_obj['urls']['public_host'] = sys_config['urls']['public_host']
334
327
    conf_obj['urls']['svn_addr'] = sys_config['urls']['svn_addr']
335
 
    conf_obj['user_info'] = {}
336
328
    conf_obj['user_info']['login'] = username
337
329
    conf_obj['user_info']['svn_pass'] = svn_pass
338
330
    conf_obj.write()