update acl

This commit is contained in:
pycook
2019-11-13 13:25:42 +08:00
parent c0c6d116b5
commit c85e535288
9 changed files with 239 additions and 80 deletions

View File

@@ -4,6 +4,7 @@ from flask import request
from api.lib.decorator import args_required
from api.lib.perm.acl.role import RoleCRUD
from api.lib.perm.acl.role import RoleRelationCRUD
from api.lib.utils import get_page
from api.lib.utils import get_page_size
from api.resource import APIView
@@ -21,9 +22,12 @@ class RoleView(APIView):
numfound, roles = RoleCRUD.search(q, app_id, page, page_size)
id2parents = RoleRelationCRUD.get_parents([i.id for i in roles])
return self.jsonify(numfound=numfound,
page=page,
page_size=page_size,
id2parents=id2parents,
roles=[i.to_dict() for i in roles])
@args_required('name')
@@ -46,3 +50,22 @@ class RoleView(APIView):
RoleCRUD.delete_role(rid)
return self.jsonify(rid=rid)
class RoleRelationView(APIView):
url_prefix = "/roles/<int:child_id>/parents"
@args_required('parent_id')
def post(self, child_id):
parent_id = request.values.get('parent_id')
res = RoleRelationCRUD.add(parent_id, child_id)
return self.jsonify(res.to_dict())
@args_required('parent_id')
def delete(self, child_id):
parent_id = request.values.get('parent_id')
RoleRelationCRUD.delete2(parent_id, child_id)
return self.jsonify(parent_id=parent_id, child_id=child_id)