summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Sulfrian <alexander@sulfrian.net>2016-01-31 23:18:27 +0100
committerAlexander Sulfrian <alexander@sulfrian.net>2016-02-02 04:23:27 +0100
commit7ac707361e08d381c73a2ff26b47729af03629c6 (patch)
tree20accd3d4ccab38ff9f2ce1f0e17d9ab91d4d4e2
parentda538be78f3ee05ae1b7f47d1f32d9851468cc0e (diff)
downloadweb-7ac707361e08d381c73a2ff26b47729af03629c6.tar.gz
web-7ac707361e08d381c73a2ff26b47729af03629c6.tar.bz2
web-7ac707361e08d381c73a2ff26b47729af03629c6.zip
manage.py: Add ListUsers command
-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()