canaille-globuzma/canaille/commands.py

67 lines
1.4 KiB
Python
Raw Normal View History

2021-10-13 07:38:44 +00:00
import click
2021-10-13 08:12:44 +00:00
import sys
2021-10-13 07:38:44 +00:00
from canaille import create_app
from canaille.models import AuthorizationCode, Token
2021-10-13 07:38:44 +00:00
from flask import current_app
from flask.cli import with_appcontext, FlaskGroup
2021-10-13 07:38:44 +00:00
@click.group(cls=FlaskGroup, create_app=create_app)
def cli():
pass
2021-10-13 07:38:44 +00:00
@cli.command()
@with_appcontext
def clean():
"""
Remove expired tokens and authorization codes.
"""
2021-10-12 16:24:51 +00:00
from canaille import setup_ldap_connection, teardown_ldap_connection
2021-10-12 16:24:51 +00:00
setup_ldap_connection(current_app)
for t in Token.filter():
if t.is_expired():
t.delete()
for a in AuthorizationCode.filter():
if a.is_expired():
a.delete()
2021-10-12 16:24:51 +00:00
teardown_ldap_connection(current_app)
2021-10-13 08:12:44 +00:00
@cli.command()
@with_appcontext
def check():
"""
Check the configuration file.
"""
from canaille.configuration import validate, ConfigurationException
2021-10-29 12:20:06 +00:00
2021-10-13 08:12:44 +00:00
try:
validate(current_app.config, validate_remote=True)
except ConfigurationException as exc:
print(exc)
sys.exit(1)
2021-11-08 17:09:05 +00:00
@cli.command()
@with_appcontext
def install():
"""
2021-11-08 17:30:31 +00:00
Installs canaille elements from the configuration.
2021-11-08 17:09:05 +00:00
"""
from canaille.installation import install
from canaille.configuration import validate, ConfigurationException
try:
validate(current_app.config, validate_remote=True)
install(current_app.config)
except ConfigurationException as exc:
print(exc)
sys.exit(1)