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

« back to all changes in this revision

Viewing changes to bin/ivle-remakeuser

  • Committer: William Grant
  • Date: 2009-04-28 05:26:37 UTC
  • Revision ID: grantw@unimelb.edu.au-20090428052637-xq0i6o7apkkvnsbk
Give get_store() a config in usrmgt-server as well.

Show diffs side-by-side

added added

removed removed

Lines of Context:
29
29
import optparse
30
30
import logging
31
31
 
32
 
import ivle.db
 
32
import ivle.config
 
33
import ivle.database
33
34
import ivle.makeuser
34
35
 
35
36
p = optparse.OptionParser()
48
49
                          os.path.basename(sys.argv[0])
49
50
    sys.exit(1)
50
51
 
51
 
try:
52
 
    db = ivle.db.DB()
53
 
    if options.all:
54
 
        list = db.get_users()
55
 
    else:
56
 
        if len(arguments) == 0:
57
 
            print >> sys.stderr, "must be run with -a or a username"
58
 
            sys.exit(1)
59
 
        list = [db.get_user(arguments[0])]
60
 
    res = db.get_all('login', ['login', 'unixid'])
61
 
    def repack(flds):
62
 
        return (flds['login'], flds['unixid'])
63
 
    uids = dict(map(repack,res))
64
 
except Exception, message:
65
 
    logging.error(str(message))
66
 
    sys.exit(1)
 
52
store = ivle.database.get_store(ivle.config.Config())
 
53
 
 
54
if options.all:
 
55
    users = store.find(ivle.database.User).order_by(ivle.database.User.login)
 
56
else:
 
57
    if len(arguments) == 0:
 
58
        print >> sys.stderr, "must be run with -a or a username"
 
59
        sys.exit(1)
 
60
    users = [ivle.database.User.get_by_login(store, arguments[0])]
67
61
 
68
62
logging.info("rebuild started")
69
63
 
70
 
list.sort(key=lambda user: user.login)
71
 
for user in list:
72
 
    login = user.login
73
 
 
 
64
for user in users:
74
65
    try:
75
 
        # Resolve the user's login into a UID
76
 
        try:
77
 
            uid = uids[login]
78
 
        except KeyError:
79
 
            raise Exception("user %s does not have a unixid in the database"
80
 
                % login)
81
 
        # Remake the user's jail
82
 
        ivle.makeuser.make_jail(login, uid)
 
66
        ivle.makeuser.make_jail(user)
83
67
    except Exception, message:
84
68
        logging.warning(str(message))
85
69
        continue
86
70
 
87
 
    logging.debug("recreated user %s's jail." % login)
 
71
    logging.debug("recreated user %s's jail." % user.login)
88
72
    
89
73
logging.info("rebuild completed successfully")