distribusi-verse: medium-tech web app content management system for the web
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

39 lines
1.2 KiB

import sys
from app import create_app, db
from models.distribusimodel import Distribusis # noqa: F401
from models.usermodel import User # noqa: F401
from sqlalchemy.exc import (DatabaseError, DataError, InterfaceError,
InvalidRequestError)
def admintool():
"""Admin CLI tool. To elevate a user to admin"""
app = create_app()
app.app_context().push()
elevateusertoadmin()
def elevateusertoadmin():
"""To elevates user of first command line argument to admin"""
user = User.query.filter_by(email=sys.argv[1]).first()
print(f"user {user.username} found with email {user.email}")
try:
user.admin = True
db.session.commit()
print(f"Account {user.email} succesfully made into an admin")
except InvalidRequestError:
db.session.rollback()
print("Something went wrong!")
except InterfaceError:
db.session.rollback()
print("Error connecting to the database")
except DataError:
db.session.rollback()
print("Invalid Entry")
except DatabaseError:
db.session.rollback()
print("Error connecting to the database")
admintool()