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