Code

more upgrading docco and a tool to fix roles
[roundup.git] / tools / fixroles.py
diff --git a/tools/fixroles.py b/tools/fixroles.py
new file mode 100644 (file)
index 0000000..9744b87
--- /dev/null
@@ -0,0 +1,40 @@
+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())