mirror of https://github.com/veops/cmdb.git
26 lines
677 B
Python
26 lines
677 B
Python
# -*- coding:utf-8 -*-
|
|
|
|
|
|
from functools import wraps
|
|
|
|
from flask import abort
|
|
from flask import request
|
|
|
|
from api.lib.perm.acl.cache import AppCache, AppAccessTokenCache
|
|
from api.lib.perm.acl.resp_format import ErrFormat
|
|
|
|
|
|
def validate_app(func):
|
|
@wraps(func)
|
|
def wrapper(*args, **kwargs):
|
|
if not request.headers.get('App-Access-Token', '').strip():
|
|
app_id = request.values.get('app_id')
|
|
app = AppCache.get(app_id)
|
|
if app is None:
|
|
return abort(400, ErrFormat.app_not_found.format("id={}".format(app_id)))
|
|
request.values['app_id'] = app.id
|
|
|
|
return func(*args, **kwargs)
|
|
|
|
return wrapper
|