mirror of
https://github.com/veops/cmdb.git
synced 2025-08-08 15:07:55 +08:00
前后端全面升级
This commit is contained in:
78
cmdb-api/api/views/acl/app.py
Normal file
78
cmdb-api/api/views/acl/app.py
Normal file
@@ -0,0 +1,78 @@
|
||||
# -*- coding:utf-8 -*-
|
||||
|
||||
from flask import abort
|
||||
from flask import request
|
||||
|
||||
from api.lib.decorator import args_required
|
||||
from api.lib.decorator import args_validate
|
||||
from api.lib.perm.acl.acl import is_app_admin
|
||||
from api.lib.perm.acl.app import AppCRUD
|
||||
from api.lib.perm.acl.resp_format import ErrFormat
|
||||
from api.lib.perm.auth import auth_abandoned
|
||||
from api.lib.utils import get_page
|
||||
from api.lib.utils import get_page_size
|
||||
from api.resource import APIView
|
||||
|
||||
|
||||
class AppView(APIView):
|
||||
url_prefix = ('/apps', '/apps/<int:_id>')
|
||||
|
||||
def get(self, _id=None):
|
||||
if _id is not None:
|
||||
if not is_app_admin('acl'):
|
||||
return abort(403, ErrFormat.no_permission)
|
||||
|
||||
app = AppCRUD.get(_id)
|
||||
app = app and app.to_dict() or {}
|
||||
|
||||
return self.jsonify(**app)
|
||||
|
||||
page = get_page(request.values.get('page', 1))
|
||||
page_size = get_page_size(request.values.get('page_size'))
|
||||
q = request.values.get('q')
|
||||
|
||||
numfound, res = AppCRUD.search(q, page, page_size)
|
||||
|
||||
res = [i.to_dict() for i in res]
|
||||
for i in res:
|
||||
i.pop('app_id', None)
|
||||
i.pop('secret_key', None)
|
||||
|
||||
return self.jsonify(page=page,
|
||||
page_size=page_size,
|
||||
numfound=numfound,
|
||||
total=len(res),
|
||||
apps=res)
|
||||
|
||||
@args_required('name')
|
||||
@args_validate(AppCRUD.cls)
|
||||
def post(self):
|
||||
name = request.values.get('name')
|
||||
description = request.values.get('description')
|
||||
|
||||
app = AppCRUD.add(name, description)
|
||||
|
||||
return self.jsonify(app.to_dict())
|
||||
|
||||
@args_validate(AppCRUD.cls)
|
||||
def put(self, _id):
|
||||
app = AppCRUD.update(_id, **request.values)
|
||||
|
||||
return self.jsonify(app.to_dict())
|
||||
|
||||
def delete(self, _id):
|
||||
AppCRUD.delete(_id)
|
||||
|
||||
return self.jsonify(id=_id)
|
||||
|
||||
|
||||
class AppAccessTokenView(APIView):
|
||||
url_prefix = '/apps/token'
|
||||
|
||||
@args_required('app_id')
|
||||
@args_required('secret_key')
|
||||
@auth_abandoned
|
||||
def post(self):
|
||||
token = AppCRUD.gen_token(request.values.get('app_id'), request.values.get('secret_key'))
|
||||
|
||||
return self.jsonify(token=token)
|
Reference in New Issue
Block a user