summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ishtar_common/rest.py26
1 files changed, 20 insertions, 6 deletions
diff --git a/ishtar_common/rest.py b/ishtar_common/rest.py
index 9354a943d..0784f88cf 100644
--- a/ishtar_common/rest.py
+++ b/ishtar_common/rest.py
@@ -3,6 +3,7 @@ from rest_framework.response import Response
from rest_framework.views import APIView
from ishtar_common.models import ApiSearchModel
+from ishtar_common.views_item import get_item
class IpModelPermission(permissions.BasePermission):
@@ -10,11 +11,7 @@ class IpModelPermission(permissions.BasePermission):
if not request.user or not getattr(request.user, "apiuser", None):
return False
ip_addr = request.META['REMOTE_ADDR']
- q = ApiSearchModel.objects.filter(
- user=request.user.apiuser,
- user__ip=ip_addr,
- content_type__app_label=view.model._meta.app_label,
- content_type__model=view.model._meta.model_name)
+ q = view.search_model_query(request).filter(user__ip=ip_addr)
return bool(q.count())
@@ -27,5 +24,22 @@ class SearchAPIView(APIView):
assert self.model is not None
super(SearchAPIView, self).__init__(**kwargs)
+ def search_model_query(self, request):
+ return ApiSearchModel.objects.filter(
+ user=request.user.apiuser,
+ content_type__app_label=self.model._meta.app_label,
+ content_type__model=self.model._meta.model_name)
+
def get(self, request, format=None):
- return Response({})
+ _get_item = get_item(
+ self.model, "get_" + self.model.SLUG, self.model.SLUG,
+ # TODO: own_table_cols=get_table_cols_for_ope() - adapt columns
+ )
+ search_model = self.search_model_query(request).all()[0]
+ if search_model.limit_query:
+ # TODO
+ # request.GET[] += " " + search_model.limit_query
+ pass
+ response = _get_item(request)
+ return response
+ #return Response({})