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

« back to all changes in this revision

Viewing changes to bin/ivle-remakeuser

  • Committer: me at id
  • Date: 2009-01-15 00:37:10 UTC
  • mto: This revision was merged to the branch mainline in revision 1090.
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:branches%2Fstorm:1141
ivle.database.User: Add an authenticate() method, and a hash_password()
     staticmethod to replace the auth functions in ivle.db.

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.config
33
 
import ivle.database
 
32
import ivle.db
34
33
import ivle.makeuser
35
34
 
36
35
p = optparse.OptionParser()
49
48
                          os.path.basename(sys.argv[0])
50
49
    sys.exit(1)
51
50
 
52
 
config = ivle.config.Config()
53
 
store = ivle.database.get_store(config)
54
 
 
55
 
if options.all:
56
 
    users = store.find(ivle.database.User).order_by(ivle.database.User.login)
57
 
else:
58
 
    if len(arguments) == 0:
59
 
        print >> sys.stderr, "must be run with -a or a username"
60
 
        sys.exit(1)
61
 
    users = [ivle.database.User.get_by_login(store, arguments[0])]
 
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)
62
67
 
63
68
logging.info("rebuild started")
64
69
 
65
 
for user in users:
 
70
list.sort(key=lambda user: user.login)
 
71
for user in list:
 
72
    login = user.login
 
73
 
66
74
    try:
67
 
        ivle.makeuser.make_jail(user, config)
 
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)
68
83
    except Exception, message:
69
84
        logging.warning(str(message))
70
85
        continue
71
86
 
72
 
    logging.debug("recreated user %s's jail." % user.login)
 
87
    logging.debug("recreated user %s's jail." % login)
73
88
    
74
89
logging.info("rebuild completed successfully")