From 7ac707361e08d381c73a2ff26b47729af03629c6 Mon Sep 17 00:00:00 2001 From: Alexander Sulfrian Date: Sun, 31 Jan 2016 23:18:27 +0100 Subject: manage.py: Add ListUsers command --- manage.py | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) 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() -- cgit v1.2.3-1-g7c22