forked from crunk/distribusi-verse
crunk
3 years ago
4 changed files with 45 additions and 3 deletions
@ -0,0 +1,41 @@ |
|||||
|
import sys |
||||
|
from app import create_app, db |
||||
|
from sqlalchemy.exc import ( |
||||
|
InvalidRequestError, |
||||
|
InterfaceError, |
||||
|
DataError, |
||||
|
DatabaseError, |
||||
|
) |
||||
|
from usermodel import User # noqa: F401 |
||||
|
from distribusimodel import Distribusis # noqa: F401 |
||||
|
|
||||
|
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() |
Loading…
Reference in new issue