~homeworkprod/byceps

ref: 90357856fb25b54d9e60125d1b658be3514449ae byceps/scripts/remove_user_sessions.py -rwxr-xr-x 822 bytes
90357856 — Jochen Kupperschmidt Prepare login-based test with frozen time for Flask v2.x, Werkzeug v2.x 5 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/usr/bin/env python

"""Log out users by removing their session tokens.

This is meant to be used when new terms of service are published so
users have to log in again and are presented the form to accept the new
terms of service.

Sessions will be recreated on demand after successful login.

:Copyright: 2006-2021 Jochen Kupperschmidt
:License: Revised BSD (see `LICENSE` file for details)
"""

import click

from byceps.services.authentication.session import service as session_service

from _util import call_with_app_context


@click.command()
def execute():
    click.secho('Removing all user sessions ... ', nl=False)

    deleted_total = session_service.delete_all_session_tokens()
    click.secho(f'{deleted_total} sessions removed.', fg='green')


if __name__ == '__main__':
    call_with_app_context(execute)