diff options
Diffstat (limited to 'manage.py')
-rwxr-xr-x | manage.py | 34 |
1 files changed, 18 insertions, 16 deletions
@@ -1,29 +1,30 @@ #!/usr/bin/env python3 -from flask import current_app - from argparse import ArgumentParser from accounts.forms import RegisterForm from accounts.utils.console import ConsoleForm, TablePrinter from accounts.backend.mail.dummy import DummyBackend as DummyMailBackend - +from accounts.models import Account from accounts import create_app +from accounts.app import accounts_app + +from typing import Iterator class ListServices(): """List the configured services.""" - def run(self): + def run(self) -> None: table = TablePrinter(['Name', 'URL']) - table.output([(service.name, service.url) - for service in current_app.all_services]) + table.output([[service.name, service.url] + for service in accounts_app.all_services]) class ListUsers(): """List registered users.""" - def _get_users(self, locked, only_locked): - for user in current_app.user_backend.find(): + def _get_users(self, locked: bool, only_locked: bool) -> Iterator[Account]: + for user in accounts_app.user_backend.find(): user_locked = user.mail.startswith('noreply-disabledaccount-') if user_locked and not (locked or only_locked): continue @@ -32,38 +33,39 @@ class ListUsers(): yield user - def run(self, locked, only_locked): + def run(self, locked: bool, only_locked: bool) -> None: table = TablePrinter(['Name', 'E-Mail', 'Uid']) - table.output([(user.uid, user.mail, user.uidNumber) + table.output([[user.uid, user.mail, user.uidNumber] for user in self._get_users(locked, only_locked)]) class CreateUser(): """Register a user.""" - def run(self, username, mail, ignore_blacklist=False, print_only=False): + def run(self, username: str, mail: str, + ignore_blacklist: bool = False, print_only: bool = False): form = ConsoleForm(RegisterForm, username=username, mail=mail) form.csrf_enabled = False del form.question if ignore_blacklist: - current_app.username_blacklist = [] + accounts_app.username_blacklist = [] if not form.validate(): form.print_errors() return if print_only: - current_app.mail_backend = DummyMailBackend(current_app) + accounts_app.mail_backend = DummyMailBackend(accounts_app) - current_app.mail_backend.send(mail, 'mail/register.txt', - username=username) + accounts_app.mail_backend.send(mail, 'mail/register.txt', + username=username) if not print_only: print('Mail versandt.') -def main(): +def main() -> None: parser = ArgumentParser(description="Spline Accounts") parser.add_argument('-c', '--config', dest='config', required=False) |