Mercurial > p > roundup > code
view tools/fixroles.py @ 5104:ca3e56590fcd
Fixed issue2550572: setting nosy=+foo on multiple issues gives them all
the same exact nosy list.
Added a missing reinitialization that has to occur every time though
the loop in do_set. Manually tested with:
python roundup/scripts/roundup_admin.py -i demo set issue184,issue17 nosy=demo
python roundup/scripts/roundup_admin.py -i demo set issue17 nosy=+alpha,+anonymous
python roundup/scripts/roundup_admin.py -i demo set issue184 nosy=+beta,+anonymous
python roundup/scripts/roundup_admin.py -i demo set issue184,issue17 nosy=-demo,-anonymous,+admin
issue17 nosy was admin,alpha issue 184 nosy was admin,beta after tests.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Sun, 26 Jun 2016 22:10:40 -0400 |
| parents | 52c8324d1539 |
| children |
line wrap: on
line source
import sys from roundup import admin class AdminTool(admin.AdminTool): def __init__(self): self.commands = admin.CommandDict() for k in AdminTool.__dict__.keys(): if k[:3] == 'do_': self.commands[k[3:]] = getattr(self, k) self.help = {} for k in AdminTool.__dict__.keys(): if k[:5] == 'help_': self.help[k[5:]] = getattr(self, k) self.instance_home = '' self.db = None def do_fixroles(self, args): '''Usage: fixroles Set the roles property for all users to reasonable defaults. The admin user gets "Admin", the anonymous user gets "Anonymous" and all other users get "User". ''' # get the user class cl = self.get_class('user') for userid in cl.list(): username = cl.get(userid, 'username') if username == 'admin': roles = 'Admin' elif username == 'anonymous': roles = 'Anonymous' else: roles = 'User' cl.set(userid, roles=roles) return 0 if __name__ == '__main__': tool = AdminTool() sys.exit(tool.main())
