def _has_perm(self, user, project): """ Check that the user has access to this resource. """ perm = ProjectPermission(user) if not perm.private(project): return False return True
def tab_suggestions_snippet(request, entity_id, lang_code): """Return a template snippet with entity & translation details.""" source_entity = get_object_or_404(SourceEntity, pk=entity_id) check = ProjectPermission(request.user) if not check.private(source_entity.resource.project): return permission_denied(request) current_translation = source_entity.get_translation(lang_code) return render_to_response("tab_suggestions_snippet.html", { 'source_entity': source_entity, 'lang_code': lang_code, 'current_translation': current_translation }, context_instance = RequestContext(request))
def tab_suggestions_snippet(request, entity_id, lang_code): """Return a template snippet with entity & translation details.""" source_entity = get_object_or_404(SourceEntity, pk=entity_id) check = ProjectPermission(request.user) if not check.private(source_entity.resource.project): return permission_denied(request) current_translation = source_entity.get_translation(lang_code) return render_to_response("tab_suggestions_snippet.html", { 'source_entity': source_entity, 'lang_code': lang_code, 'current_translation': current_translation }, context_instance=RequestContext(request))
def tab_details_snippet(request, entity_id, lang_code): """Return a template snippet with entity & translation details.""" source_entity = get_object_or_404(SourceEntity, pk=entity_id) check = ProjectPermission(request.user) if not check.private(source_entity.resource.project): return permission_denied(request) language = get_object_or_404(Language, code=lang_code) translation = source_entity.get_translation(language.code) return list_detail.object_detail(request, queryset=SourceEntity.objects.all(), object_id=entity_id, template_name="tab_details_snippet.html", template_object_name='source_entity', extra_context={"translation": translation, "project": source_entity.resource.project})
def suggestion_vote(request, entity_id, lang_code, suggestion_id, direction): """Vote up or down for a suggestion.""" suggestion = get_object_or_404(Suggestion, pk=suggestion_id) # Permissions handling check = ProjectPermission(request.user) if not check.private(suggestion.source_entity.resource.project): return permission_denied(request) #FIXME: All basic POST checks could be done in a decorator. if not request.method == "POST": return HttpResponseBadRequest(_("POST method only allowed.")) if direction == 'up': suggestion.vote_up(request.user) elif direction == 'down': suggestion.vote_down(request.user) return HttpResponse(status=200)
def _read(self, request, project_slug): """ Return a list of projects or the details for a specific project. """ if project_slug is None: # Use pagination p = Project.objects.for_user(request.user) res, msg = paginate(p, request.GET.get("start"), request.GET.get("end")) if res is None: return BAD_REQUEST(msg) return res else: try: p = Project.objects.get(slug=project_slug) perm = ProjectPermission(request.user) if not perm.private(p): return rc.FORBIDDEN except Project.DoesNotExist: return rc.NOT_FOUND return p
def _read(self, request, project_slug): """ Return a list of projects or the details for a specific project. """ if project_slug is None: # Use pagination p = Project.objects.for_user(request.user) res, msg = paginate(p, request.GET.get('start'), request.GET.get('end')) if res is None: return BAD_REQUEST(msg) return res else: try: p = Project.objects.get(slug=project_slug) perm = ProjectPermission(request.user) if not perm.private(p): return rc.FORBIDDEN except Project.DoesNotExist: return rc.NOT_FOUND return p
def tab_details_snippet(request, entity_id, lang_code): """Return a template snippet with entity & translation details.""" source_entity = get_object_or_404(SourceEntity, pk=entity_id) check = ProjectPermission(request.user) if not check.private(source_entity.resource.project): return permission_denied(request) language = get_object_or_404(Language, code=lang_code) translation = source_entity.get_translation(language.code) return list_detail.object_detail(request, queryset=SourceEntity.objects.all(), object_id=entity_id, template_name="tab_details_snippet.html", template_object_name='source_entity', extra_context={ "translation": translation, "project": source_entity.resource.project })
def suggestion_create(request, entity_id, lang_code): """Create a suggestion for an entity and a language.""" source_entity = get_object_or_404(SourceEntity, pk=entity_id) # Permissions handling check = ProjectPermission(request.user) if not check.private(source_entity.resource.project): return permission_denied(request) #FIXME: All basic POST checks could be done in a decorator. if not request.method == "POST": return HttpResponseBadRequest(_("POST method only allowed.")) suggestion_string = request.POST['suggestion_string'] if not suggestion_string: return HttpResponseBadRequest(_("POST variable 'suggestion_string' missing.")) language = Language.objects.by_code_or_alias(lang_code) source_entity.suggestions.create(language=language, string=request.POST['suggestion_string'], user=request.user) return HttpResponse(status=200)
def suggestion_create(request, entity_id, lang_code): """Create a suggestion for an entity and a language.""" source_entity = get_object_or_404(SourceEntity, pk=entity_id) # Permissions handling check = ProjectPermission(request.user) if not check.private(source_entity.resource.project): return permission_denied(request) #FIXME: All basic POST checks could be done in a decorator. if not request.method == "POST": return HttpResponseBadRequest(_("POST method only allowed.")) suggestion_string = request.POST['suggestion_string'] if not suggestion_string: return HttpResponseBadRequest( _("POST variable 'suggestion_string' missing.")) language = Language.objects.by_code_or_alias(lang_code) source_entity.suggestions.create(language=language, string=request.POST['suggestion_string'], user=request.user) return HttpResponse(status=200)