def is_valid_session(request): if hatoholserver.SESSION_NAME_META not in request.META: return False session_id = request.META[hatoholserver.SESSION_NAME_META] user_id = get_user_id_from_hatohol_server(session_id) return user_id is not None
def is_valid_session(request): try: user_id = get_user_id_from_hatohol_server(request) return True except: return False
def json_settings_handler(request, id, model_class, view_path): content_type = 'application/json' try: user_id = get_user_id_from_hatohol_server(request) except (NoHatoholUser, NoHatoholSession): return http.HttpResponseForbidden(content_type=content_type) if request.method == 'POST': unicode_body = smart_text(request.body, encoding=request.encoding) model = model_class(user_id=user_id, settings_json=unicode_body) try: model.full_clean() except ValidationError as e: return http.HttpResponseBadRequest(json.dumps(e.messages), content_type=content_type) model.save() response = http.HttpResponse(to_json(model), content_type=content_type, status=201) response['Location'] = reverse('hatohol.views.graphs', args=[model.id]) return response elif request.method == 'PUT': if id is None: message = 'id is required' return http.HttpResponseBadRequest(to_json(message), content_type=content_type) try: unicode_body = smart_text(request.body, encoding=request.encoding) model = model_class.objects.get(id=id) if model.user_id != user_id: return http.HttpResponseForbidden(content_type=content_type) model.settings_json = unicode_body model.full_clean() model.save() return http.HttpResponse(to_json(model), content_type=content_type) except model_class.DoesNotExist: return http.HttpResponseNotFound(content_type=content_type) except ValidationError as e: return http.HttpResponseBadRequest(json.dumps(e.messages), content_type=content_type) elif request.method == 'DELETE': if id is None: message = 'id is required' return http.HttpResponseBadRequest(to_json(message), content_type=content_type) try: model = model_class.objects.get(id=id) except model_class.DoesNotExist: return http.HttpResponseNotFound() else: if model.user_id != user_id: return http.HttpResponseForbidden(content_type=content_type) model.delete() return http.HttpResponse() else: if id: try: model = model_class.objects.get(id=id) except model_class.DoesNotExist: return http.HttpResponseNotFound() if model.user_id != user_id: return http.HttpResponseForbidden(content_type=content_type) response = model else: models = model_class.objects.filter(user_id=user_id).order_by('id') response = models return http.HttpResponse(to_json(response), content_type=content_type)
def json_settings_handler(request, id, model_class, view_path): content_type = 'application/json' try: user_id = get_user_id_from_hatohol_server(request) except (NoHatoholUser, NoHatoholSession): return http.HttpResponseForbidden(content_type=content_type) if request.method == 'POST': unicode_body = smart_text(request.body, encoding=request.encoding) model = model_class(user_id=user_id, settings_json=unicode_body) try: model.full_clean() except ValidationError as e: return http.HttpResponseBadRequest(json.dumps(e.messages), content_type=content_type) model.save() response = http.HttpResponse(to_json(model), content_type=content_type, status=201) response['Location'] = reverse(view_path, args=[model.id]) return response elif request.method == 'PUT': if id is None: message = 'id is required' return http.HttpResponseBadRequest(to_json(message), content_type=content_type) try: unicode_body = smart_text(request.body, encoding=request.encoding) model = model_class.objects.get(id=id) if model.user_id != user_id: return http.HttpResponseForbidden(content_type=content_type) model.settings_json = unicode_body model.full_clean() model.save() return http.HttpResponse(to_json(model), content_type=content_type) except model_class.DoesNotExist: return http.HttpResponseNotFound(content_type=content_type) except ValidationError as e: return http.HttpResponseBadRequest(json.dumps(e.messages), content_type=content_type) elif request.method == 'DELETE': if id is None: message = 'id is required' return http.HttpResponseBadRequest(to_json(message), content_type=content_type) try: model = model_class.objects.get(id=id) except model_class.DoesNotExist: return http.HttpResponseNotFound() else: if model.user_id != user_id: return http.HttpResponseForbidden(content_type=content_type) model.delete() return http.HttpResponse() else: if id: try: model = model_class.objects.get(id=id) except model_class.DoesNotExist: return http.HttpResponseNotFound() if model.user_id != user_id: return http.HttpResponseForbidden(content_type=content_type) response = model else: models = model_class.objects.filter(user_id=user_id).order_by('id') response = models return http.HttpResponse(to_json(response), content_type=content_type)
def graphs(request, id): content_type = 'application/json' try: user_id = get_user_id_from_hatohol_server(request) except (NoHatoholUser, NoHatoholSession): return http.HttpResponseForbidden(content_type=content_type) if request.method == 'POST': graph = Graph(user_id=user_id, settings_json=request.body) try: graph.full_clean() except ValidationError as e: return http.HttpResponseBadRequest(json.dumps(e.messages), content_type=content_type) graph.save() response = http.HttpResponse(to_json(graph), content_type=content_type, status=201) response['Location'] = reverse('hatohol.views.graphs', args=[graph.id]) return response elif request.method == 'PUT': if id is None: message = 'id is required' return http.HttpResponseBadRequest(to_json(message), content_type=content_type) try: graph = Graph.objects.get(id=id) if graph.user_id != user_id: return http.HttpResponseForbidden(content_type=content_type) graph.settings_json = request.body graph.full_clean() graph.save() return http.HttpResponse(to_json(graph), content_type=content_type) except Graph.DoesNotExist: return http.HttpResponseNotFound(content_type=content_type) except ValidationError as e: return http.HttpResponseBadRequest(json.dumps(e.messages), content_type=content_type) elif request.method == 'DELETE': if id is None: message = 'id is required' return http.HttpResponseBadRequest(to_json(message), content_type=content_type) try: graph = Graph.objects.get(id=id) except Graph.DoesNotExist: return http.HttpResponseNotFound() else: if graph.user_id != user_id: return http.HttpResponseForbidden(content_type=content_type) graph.delete() return http.HttpResponse() else: if id: try: graph = Graph.objects.get(id=id) except Graph.DoesNotExist: return http.HttpResponseNotFound() if graph.user_id != user_id: return http.HttpResponseForbidden(content_type=content_type) response = graph else: graphs = Graph.objects.filter(user_id=user_id).order_by('id') response = graphs return http.HttpResponse(to_json(response), content_type=content_type)