CLI - refactoring
This commit is contained in:
23
fittrackee/users/commands.py
Normal file
23
fittrackee/users/commands.py
Normal file
@ -0,0 +1,23 @@
|
||||
import click
|
||||
|
||||
from fittrackee.cli.app import app
|
||||
from fittrackee.users.exceptions import UserNotFoundException
|
||||
from fittrackee.users.utils.admin import set_admin_rights
|
||||
|
||||
|
||||
@click.group(name='users')
|
||||
def users_cli() -> None:
|
||||
"""Manage users."""
|
||||
pass
|
||||
|
||||
|
||||
@users_cli.command('set-admin')
|
||||
@click.argument('username')
|
||||
def set_admin(username: str) -> None:
|
||||
"""Set admin rights for given user"""
|
||||
with app.app_context():
|
||||
try:
|
||||
set_admin_rights(username)
|
||||
click.echo(f"User '{username}' updated.")
|
||||
except UserNotFoundException:
|
||||
click.echo(f"User '{username}' not found.", err=True)
|
@ -3,7 +3,6 @@ import secrets
|
||||
import shutil
|
||||
from typing import Any, Dict, Tuple, Union
|
||||
|
||||
import click
|
||||
from flask import Blueprint, current_app, request, send_file
|
||||
from sqlalchemy import exc
|
||||
|
||||
@ -27,26 +26,13 @@ from fittrackee.utils import get_readable_duration
|
||||
from fittrackee.workouts.models import Record, Workout, WorkoutSegment
|
||||
|
||||
from .decorators import authenticate, authenticate_as_admin
|
||||
from .exceptions import UserNotFoundException
|
||||
from .models import User, UserSportPreference
|
||||
from .utils.admin import set_admin_rights
|
||||
|
||||
users_blueprint = Blueprint('users', __name__)
|
||||
|
||||
USER_PER_PAGE = 10
|
||||
|
||||
|
||||
@users_blueprint.cli.command('set-admin')
|
||||
@click.argument('username')
|
||||
def set_admin(username: str) -> None:
|
||||
"""Set admin rights for given user"""
|
||||
try:
|
||||
set_admin_rights(username)
|
||||
print(f"User '{username}' updated.")
|
||||
except UserNotFoundException:
|
||||
print(f"User '{username}' not found.")
|
||||
|
||||
|
||||
@users_blueprint.route('/users', methods=['GET'])
|
||||
@authenticate_as_admin
|
||||
def get_users(auth_user: User) -> Dict:
|
||||
|
Reference in New Issue
Block a user