mirror of https://github.com/veops/cmdb.git
commit
aae3b6e2ff
|
@ -20,8 +20,20 @@ class ResourceTypeCRUD(object):
|
||||||
query = query.filter(ResourceType.name.ilike('%{0}%'.format(q)))
|
query = query.filter(ResourceType.name.ilike('%{0}%'.format(q)))
|
||||||
|
|
||||||
numfound = query.count()
|
numfound = query.count()
|
||||||
|
res = query.offset((page - 1) * page_size).limit(page_size)
|
||||||
|
rt_ids = [i.id for i in res]
|
||||||
|
perms = db.session.query(Permission).filter(Permission.deleted.is_(False)).filter(
|
||||||
|
Permission.resource_type_id.in_(rt_ids))
|
||||||
|
id2perms = dict()
|
||||||
|
for perm in perms:
|
||||||
|
id2perms.setdefault(perm.resource_type_id, []).append(perm.to_dict())
|
||||||
|
|
||||||
return numfound, query.offset((page - 1) * page_size).limit(page_size)
|
return numfound, res, id2perms
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def get_perms(rt_id):
|
||||||
|
perms = Permission.get_by(resource_type_id=rt_id, to_dict=False)
|
||||||
|
return [i.to_dict() for i in perms]
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def add(cls, app_id, name, perms):
|
def add(cls, app_id, name, perms):
|
||||||
|
@ -36,6 +48,8 @@ class ResourceTypeCRUD(object):
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def update(cls, rt_id, **kwargs):
|
def update(cls, rt_id, **kwargs):
|
||||||
|
kwargs.pop('app_id', None)
|
||||||
|
|
||||||
rt = ResourceType.get_by_id(rt_id) or abort(404, "ResourceType <{0}> is not found".format(rt_id))
|
rt = ResourceType.get_by_id(rt_id) or abort(404, "ResourceType <{0}> is not found".format(rt_id))
|
||||||
if 'name' in kwargs:
|
if 'name' in kwargs:
|
||||||
other = ResourceType.get_by(name=kwargs['name'], app_id=rt.app_id, to_dict=False, first=True)
|
other = ResourceType.get_by(name=kwargs['name'], app_id=rt.app_id, to_dict=False, first=True)
|
||||||
|
|
|
@ -119,6 +119,8 @@ class RoleCRUD(object):
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def update_role(rid, **kwargs):
|
def update_role(rid, **kwargs):
|
||||||
|
kwargs.pop('app_id', None)
|
||||||
|
|
||||||
role = Role.get_by_id(rid) or abort(404, "Role <{0}> does not exist".format(rid))
|
role = Role.get_by_id(rid) or abort(404, "Role <{0}> does not exist".format(rid))
|
||||||
|
|
||||||
RoleCache.clean(rid)
|
RoleCache.clean(rid)
|
||||||
|
|
|
@ -24,12 +24,13 @@ class ResourceTypeView(APIView):
|
||||||
q = request.values.get('q')
|
q = request.values.get('q')
|
||||||
app_id = request.values.get('app_id')
|
app_id = request.values.get('app_id')
|
||||||
|
|
||||||
numfound, res = ResourceTypeCRUD.search(q, app_id, page, page_size)
|
numfound, res, id2perms = ResourceTypeCRUD.search(q, app_id, page, page_size)
|
||||||
|
|
||||||
return self.jsonify(numfound=numfound,
|
return self.jsonify(numfound=numfound,
|
||||||
page=page,
|
page=page,
|
||||||
page_size=page_size,
|
page_size=page_size,
|
||||||
groups=[i.to_dict() for i in res])
|
groups=[i.to_dict() for i in res],
|
||||||
|
id2perms=id2perms)
|
||||||
|
|
||||||
@args_required('name')
|
@args_required('name')
|
||||||
@args_required('app_id')
|
@args_required('app_id')
|
||||||
|
@ -40,7 +41,7 @@ class ResourceTypeView(APIView):
|
||||||
app_id = request.values.get('app_id')
|
app_id = request.values.get('app_id')
|
||||||
perms = request.values.get('perms')
|
perms = request.values.get('perms')
|
||||||
|
|
||||||
rt = ResourceTypeCRUD.add(name, app_id, perms)
|
rt = ResourceTypeCRUD.add(app_id, name, perms)
|
||||||
|
|
||||||
return self.jsonify(rt.to_dict())
|
return self.jsonify(rt.to_dict())
|
||||||
|
|
||||||
|
@ -55,6 +56,13 @@ class ResourceTypeView(APIView):
|
||||||
return self.jsonify(type_id=type_id)
|
return self.jsonify(type_id=type_id)
|
||||||
|
|
||||||
|
|
||||||
|
class ResourceTypePermsView(APIView):
|
||||||
|
url_prefix = "/resource_types/<int:type_id>/perms"
|
||||||
|
|
||||||
|
def get(self, type_id):
|
||||||
|
return self.jsonify(ResourceTypeCRUD.get_perms(type_id))
|
||||||
|
|
||||||
|
|
||||||
class ResourceView(APIView):
|
class ResourceView(APIView):
|
||||||
url_prefix = ("/resources", "/resources/<int:resource_id>")
|
url_prefix = ("/resources", "/resources/<int:resource_id>")
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue