[System][Plugin] moved decorator
This commit is contained in:
parent
e7efa53071
commit
06237754f1
|
@ -2,14 +2,13 @@
|
|||
|
||||
Allow management of authentication, login, logout, etc.
|
||||
"""
|
||||
from http.client import CREATED, NO_CONTENT
|
||||
from flask import Blueprint, request, jsonify
|
||||
from werkzeug.exceptions import Forbidden, BadRequest, Unauthorized, NotFound
|
||||
from werkzeug.exceptions import Forbidden, BadRequest, Unauthorized
|
||||
|
||||
from flaschengeist import logger
|
||||
from flaschengeist.plugins import Plugin
|
||||
from flaschengeist.utils.HTTP import no_content
|
||||
from flaschengeist.decorator import login_required
|
||||
from flaschengeist.utils.HTTP import no_content, created
|
||||
from flaschengeist.utils.decorators import login_required
|
||||
from flaschengeist.controller import sessionController, userController
|
||||
|
||||
auth_bp = Blueprint("auth", __name__)
|
||||
|
@ -50,11 +49,7 @@ def login():
|
|||
|
||||
# Lets cleanup the DB
|
||||
sessionController.clear_expired()
|
||||
return {
|
||||
"session": session,
|
||||
"user": user,
|
||||
"permissions": user.get_permissions(),
|
||||
}, CREATED
|
||||
return created(session)
|
||||
|
||||
|
||||
@auth_bp.route("/auth", methods=["GET"])
|
||||
|
|
|
@ -13,7 +13,7 @@ from flaschengeist import logger
|
|||
from flaschengeist.utils import HTTP
|
||||
from flaschengeist.models.session import Session
|
||||
from flaschengeist.utils.datetime import from_iso_format
|
||||
from flaschengeist.decorator import login_required
|
||||
from flaschengeist.utils.decorators import login_required
|
||||
from flaschengeist.controller import userController
|
||||
from flaschengeist.plugins import Plugin, before_update_user
|
||||
|
||||
|
@ -75,7 +75,7 @@ def get_shortcuts(userid, current_session: Session):
|
|||
data = request.get_json()
|
||||
if not isinstance(data, list) or not all(isinstance(n, (int, float)) for n in data):
|
||||
raise BadRequest
|
||||
data.sort()
|
||||
data.sort(reverse=True)
|
||||
user.set_attribute("balance_shortcuts", data)
|
||||
userController.persist()
|
||||
return no_content()
|
||||
|
|
|
@ -5,10 +5,10 @@ Provides routes used to configure roles and permissions of users / roles.
|
|||
|
||||
from werkzeug.exceptions import BadRequest
|
||||
from flask import Blueprint, request, jsonify
|
||||
from http.client import CREATED, NO_CONTENT
|
||||
from http.client import NO_CONTENT
|
||||
|
||||
from flaschengeist.plugins import Plugin
|
||||
from flaschengeist.decorator import login_required
|
||||
from flaschengeist.utils.decorators import login_required
|
||||
from flaschengeist.controller import roleController
|
||||
from flaschengeist.utils.HTTP import created
|
||||
|
||||
|
|
|
@ -3,19 +3,18 @@
|
|||
Provides duty schedule / duty roster functions
|
||||
"""
|
||||
from datetime import datetime, timedelta, timezone
|
||||
from http.client import NO_CONTENT, CREATED
|
||||
from http.client import NO_CONTENT
|
||||
from flask import Blueprint, request, jsonify
|
||||
from werkzeug.exceptions import BadRequest, NotFound, Forbidden
|
||||
|
||||
from flaschengeist.plugins import Plugin
|
||||
from flaschengeist.models.session import Session
|
||||
from flaschengeist.decorator import login_required
|
||||
from flaschengeist.utils.decorators import login_required
|
||||
from flaschengeist.utils.datetime import from_iso_format
|
||||
from flaschengeist.controller import userController
|
||||
|
||||
from . import event_controller, permissions
|
||||
from . import models
|
||||
from ... import logger
|
||||
from ...utils.HTTP import no_content
|
||||
|
||||
schedule_bp = Blueprint("schedule", __name__, url_prefix="/schedule")
|
||||
|
|
|
@ -11,7 +11,7 @@ from flaschengeist import logger
|
|||
from flaschengeist.config import config
|
||||
from flaschengeist.plugins import Plugin
|
||||
from flaschengeist.models.user import User, _Avatar
|
||||
from flaschengeist.decorator import login_required, extract_session
|
||||
from flaschengeist.utils.decorators import login_required, extract_session, headers
|
||||
from flaschengeist.controller import userController
|
||||
from flaschengeist.utils.HTTP import created
|
||||
from flaschengeist.utils.datetime import from_iso_format
|
||||
|
@ -57,6 +57,7 @@ def register():
|
|||
|
||||
@users_bp.route("/users", methods=["GET"])
|
||||
@login_required()
|
||||
@headers({"Cache-Control": "private, must-revalidate, max-age=3600"})
|
||||
def list_users(current_session):
|
||||
"""List all existing users
|
||||
|
||||
|
@ -75,6 +76,7 @@ def list_users(current_session):
|
|||
|
||||
@users_bp.route("/users/<userid>", methods=["GET"])
|
||||
@login_required()
|
||||
@headers({"Cache-Control": "private, must-revalidate, max-age=3600"})
|
||||
def get_user(userid, current_session):
|
||||
"""Retrieve user by userid
|
||||
|
||||
|
@ -96,6 +98,7 @@ def get_user(userid, current_session):
|
|||
|
||||
|
||||
@users_bp.route("/users/<userid>/avatar", methods=["GET"])
|
||||
@headers({"Cache-Control": "public, max-age=604800"})
|
||||
def get_avatar(userid):
|
||||
user = userController.get_user(userid)
|
||||
avatar = userController.load_avatar(user)
|
||||
|
|
|
@ -40,3 +40,29 @@ def login_required(permission=None):
|
|||
return wrapped_f
|
||||
|
||||
return wrap
|
||||
|
||||
|
||||
def headers(headers={}, **headers_kwargs):
|
||||
"""
|
||||
Wrap a Flask route to add HTTP headers.
|
||||
Either pass a dictionary of headers to be set as the headerDict keyword
|
||||
argument, or pass header values as keyword arguments. Or both.
|
||||
|
||||
The key and value of items in a dictionary will be converted to strings using
|
||||
the `str` method, ensure both keys and values are serializable thusly.
|
||||
Args:
|
||||
headers: A dictionary of headers to be injected into the response headers.
|
||||
Note, the supplied dictionary is first copied then mutated.
|
||||
headers_kwargs: The headers to be injected into the response headers.
|
||||
"""
|
||||
_headerDict = headers.copy()
|
||||
_headerDict.update(headers_kwargs)
|
||||
|
||||
def decorator(f):
|
||||
@wraps(f)
|
||||
def decorated_function(*args, **kwargs):
|
||||
return f(*args, **kwargs), _headerDict
|
||||
|
||||
return decorated_function
|
||||
|
||||
return decorator
|
Loading…
Reference in New Issue