Skip to content
Snippets Groups Projects

Resolve "admin endpoint"

Merged Herman Andersen Dyrkorn requested to merge 29-admin-endpoint into master
1 file
+ 46
0
Compare changes
  • Side-by-side
  • Inline
+ 46
0
from flask import request, jsonify
from flask_restful import Resource
from api.models.dbmodels import User
from api import db
from flask_jwt_extended import get_jwt_identity, jwt_required
class AdminManageUser(Resource):
@staticmethod
@jwt_required
def get():
user_id = get_jwt_identity()
user = db.session.query(User).filter_by(id=user_id).first()
if user.admin:
user_list = []
users = db.session.query(User).filter_by(accepted=1).all()
for pr_user in users:
ret = {"email": pr_user.email, "id": pr_user.id}
user_list.append(ret)
return jsonify({"users": user_list, "status": 200})
else:
return jsonify({"message": "no access", "status": 400})
@staticmethod
@jwt_required
def post():
data = request.form
user_id = get_jwt_identity()
user = db.session.query(User).filter_by(id=user_id).first()
if user.admin:
if "id" in data and "email" in data:
update_user = db.session.query(User).filter_by(id=user_id).first()
if data['makeAdmin'] and data['email'] == update_user.email:
update_user.admin = True
db.session.commit()
return jsonify({"message": "user is now admin", "status": 200})
if data['makePending'] and data['email'] == update_user.email:
update_user.accepted = False
db.session.commit()
return jsonify({"message": "user is downgraded", "status": 200})
else:
return jsonify({"message": "wrong data", "status": 400})
else:
return jsonify({"message": "no access", "status": 400})
Loading