summaryrefslogtreecommitdiffstats
path: root/manage.py
diff options
context:
space:
mode:
Diffstat (limited to 'manage.py')
-rwxr-xr-xmanage.py30
1 files changed, 29 insertions, 1 deletions
diff --git a/manage.py b/manage.py
index 18a96bf..699888a 100755
--- a/manage.py
+++ b/manage.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
from flask import current_app
-from flask.ext.script import Command, Manager, Server, Shell
+from flask.ext.script import Command, Manager, Server, Shell, Option
from accounts import app
from accounts.utils.console import TablePrinter
@@ -16,6 +16,33 @@ class ListServices(Command):
for service in current_app.all_services])
+class ListUsers(Command):
+ """List registered users."""
+ name = 'list-users'
+
+ option_list = (
+ Option('--locked', '-l', action='store_true', dest='locked',
+ help='Include locked users.'),
+ Option('--only-locked', '-L', action='store_true', dest='only_locked',
+ help='Show ONLY locked users.'),
+ )
+
+ def _get_users(self, locked, only_locked):
+ for user in current_app.user_backend.find():
+ user_locked = user.mail.startswith('noreply-disabledaccount-')
+ if user_locked and not (locked or only_locked):
+ continue
+ elif not user_locked and only_locked:
+ continue
+
+ yield user
+
+ def run(self, locked, only_locked):
+ table = TablePrinter(['Name', 'E-Mail'])
+ table.output([(user.uid, user.mail)
+ for user in self._get_users(locked, only_locked)])
+
+
def main():
manager = Manager(app)
manager.add_command(
@@ -25,6 +52,7 @@ def main():
manager.add_command(
'shell', Shell())
manager.add_command(ListServices)
+ manager.add_command(ListUsers)
manager.run()