mirror of
https://github.com/veops/cmdb.git
synced 2025-08-07 22:17:37 +08:00
前后端全面升级
This commit is contained in:
92
cmdb-api/api/views/acl/trigger.py
Normal file
92
cmdb-api/api/views/acl/trigger.py
Normal file
@@ -0,0 +1,92 @@
|
||||
# -*- coding:utf-8 -*-
|
||||
|
||||
from flask import request
|
||||
|
||||
from api.lib.decorator import args_required
|
||||
from api.lib.decorator import args_validate
|
||||
from api.lib.perm.acl import validate_app
|
||||
from api.lib.perm.acl.trigger import TriggerCRUD
|
||||
from api.lib.perm.auth import auth_only_for_acl
|
||||
from api.lib.perm.auth import auth_with_app_token
|
||||
from api.resource import APIView
|
||||
|
||||
|
||||
class TriggerView(APIView):
|
||||
url_prefix = ("/triggers", "/triggers/<int:_id>")
|
||||
|
||||
@validate_app
|
||||
@auth_with_app_token
|
||||
def get(self):
|
||||
return self.jsonify(TriggerCRUD.get(request.values.get('app_id')))
|
||||
|
||||
@args_required('name')
|
||||
@args_required('resource_type_id')
|
||||
@args_required('roles')
|
||||
@args_required('permissions')
|
||||
@validate_app
|
||||
@auth_only_for_acl
|
||||
@args_validate(TriggerCRUD.cls, exclude_args=['app_id'])
|
||||
def post(self):
|
||||
request.values.pop('_key', None)
|
||||
request.values.pop('_secret', None)
|
||||
trigger = TriggerCRUD.add(request.values.pop('app_id', None), **request.values)
|
||||
|
||||
return self.jsonify(trigger.to_dict())
|
||||
|
||||
@args_required('resource_type_id')
|
||||
@args_required('roles')
|
||||
@args_required('permissions')
|
||||
@validate_app
|
||||
@auth_only_for_acl
|
||||
@args_validate(TriggerCRUD.cls, exclude_args=['app_id'])
|
||||
def put(self, _id):
|
||||
request.values.pop('_key', None)
|
||||
request.values.pop('_secret', None)
|
||||
|
||||
trigger = TriggerCRUD.update(_id, **request.values)
|
||||
|
||||
return self.jsonify(trigger.to_dict())
|
||||
|
||||
@auth_only_for_acl
|
||||
def delete(self, _id):
|
||||
TriggerCRUD.delete(_id)
|
||||
|
||||
return self.jsonify(id=_id)
|
||||
|
||||
|
||||
class TriggerResourceView(APIView):
|
||||
url_prefix = "/triggers/resources"
|
||||
|
||||
@validate_app
|
||||
@auth_with_app_token
|
||||
@args_required("resource_type_id")
|
||||
def post(self):
|
||||
app_id = request.values.get('app_id')
|
||||
resource_type_id = request.values.get('resource_type_id')
|
||||
wildcard = request.values.get('pattern')
|
||||
uid = request.values.get('owner')
|
||||
|
||||
resources = TriggerCRUD.get_resources(app_id, resource_type_id, wildcard, uid)
|
||||
resources = [i.to_dict() for i in resources]
|
||||
|
||||
return self.jsonify(resources)
|
||||
|
||||
|
||||
class TriggerApplyView(APIView):
|
||||
url_prefix = "/triggers/<int:_id>/apply"
|
||||
|
||||
@auth_only_for_acl
|
||||
def post(self, _id):
|
||||
TriggerCRUD.apply(_id)
|
||||
|
||||
return self.jsonify(id=_id)
|
||||
|
||||
|
||||
class TriggerCancelView(APIView):
|
||||
url_prefix = "/triggers/<int:_id>/cancel"
|
||||
|
||||
@auth_only_for_acl
|
||||
def post(self, _id):
|
||||
TriggerCRUD.cancel(_id)
|
||||
|
||||
return self.jsonify(id=_id)
|
Reference in New Issue
Block a user