def form_valid(self, form): if (self.request.user.is_anonymous() and not settings.ANONYMOUS or not self.article.can_write(self.request.user)): return response_forbidden(self.request, self.article, self.urlpath) # WARNING! The below decorator silences other exceptions that may occur! @transaction.commit_manually def _form_valid(form): try: attachment_revision = form.save(commit=False) attachment = models.Attachment() attachment.article = self.article attachment.original_filename = attachment_revision.get_filename() attachment.save() attachment.articles.add(self.article) attachment_revision.attachment = attachment attachment_revision.set_from_request(self.request) attachment_revision.save() messages.success(self.request, _(u'%s was successfully added.') % attachment_revision.get_filename()) except models.IllegalFileExtension, e: transaction.rollback() messages.error(self.request, _(u'Your file could not be saved: %s') % e) except Exception: transaction.rollback() messages.error(self.request, _(u'Your file could not be saved, probably because of a permission error on the web server.'))
def dispatch(self, request, article, attachment_id, *args, **kwargs): if request.user.is_anonymous() and not settings.ANONYMOUS: return response_forbidden( request, article, kwargs.get( 'urlpath', None)) if article.can_moderate(request.user): self.attachment = get_object_or_404( models.Attachment, id=attachment_id, articles=article) self.can_moderate = True else: self.attachment = get_object_or_404( models.Attachment.objects.active(), id=attachment_id, articles=article) self.can_moderate = False return super( AttachmentReplaceView, self).dispatch( request, article, *args, **kwargs)
def form_valid(self, form): if (self.request.user.is_anonymous and not settings.ANONYMOUS or not self.article.can_write(self.request.user) or self.article.current_revision.locked): return response_forbidden(self.request, self.article, self.urlpath) attachment_revision = form.save() if isinstance(attachment_revision, list): messages.success( self.request, _("Successfully added: %s") % (", ".join([ar.get_filename() for ar in attachment_revision])), ) else: messages.success( self.request, _("%s was successfully added.") % attachment_revision.get_filename(), ) self.article.clear_cache() return redirect("wiki:attachments_index", path=self.urlpath.path, article_id=self.article.id)
def dispatch(self, request, article, attachment_id, *args, **kwargs): self.attachment = get_object_or_404(models.Attachment, id=attachment_id, articles=article) if not self.attachment.can_delete(request.user): return response_forbidden(request, article, kwargs.get("urlpath", None)) return super().dispatch(request, article, *args, **kwargs)
def dispatch(self, request, article, template_id, *args, **kwargs): self.template = get_object_or_404( models.Template, id=template_id, articles=article ) self.article = article if not self.template.can_delete(request.user): return response_forbidden(request, article, kwargs.get('urlpath', None)) return super(TemplateDeleteView, self).dispatch(request, article, *args, **kwargs)
def form_valid(self, form): if (self.request.user.is_anonymous() and not settings.ANONYMOUS or not self.article.can_write(self.request.user) or self.article.current_revision.locked): return response_forbidden(self.request, self.article, self.urlpath) attachment_revision = form.save() if isinstance(attachment_revision, list): messages.success(self.request, _(u'Successfully added: %s') % (", ".join([ar.get_filename() for ar in attachment_revision]))) else: messages.success(self.request, _(u'%s was successfully added.') % attachment_revision.get_filename()) return redirect("wiki:attachments_index", path=self.urlpath.path, article_id=self.article.id)
def form_valid(self, form): if (self.request.user.is_anonymous() and not settings.ANONYMOUS or not self.article.can_write(self.request.user) or self.article.current_revision.locked): return response_forbidden(self.request, self.article, self.urlpath) template_revision = form.save() messages.success( self.request, _('%s was successfully added.') % template_revision.template.template_title ) return redirect( "wiki:template_index", path=self.urlpath.path, article_id=self.article.id )
def dispatch(self, request, article, attachment_id, *args, **kwargs): self.attachment = get_object_or_404( models.Attachment, id=attachment_id, articles=article) if not self.attachment.can_delete(request.user): return response_forbidden( request, article, kwargs.get( 'urlpath', None)) return super( AttachmentDeleteView, self).dispatch( request, article, *args, **kwargs)
def form_valid(self, form): if (self.request.user.is_anonymous() and not settings.ANONYMOUS or not self.article.can_write(self.request.user)): return response_forbidden(self.request, self.article, self.urlpath) try: attachment_revision = form.save(commit=False) attachment = models.Attachment() attachment.article = self.article attachment.original_filename = attachment_revision.get_filename() attachment.save() attachment.articles.add(self.article) attachment_revision.attachment = attachment attachment_revision.set_from_request(self.request) attachment_revision.save() messages.success(self.request, _(u'%s was successfully added.') % attachment_revision.get_filename()) except models.IllegalFileExtension, e: transaction.rollback() messages.error(self.request, _(u'Your file could not be saved: %s') % e)
def form_valid(self, form): if (self.request.user.is_anonymous() and not settings.ANONYMOUS or not self.article.can_write(self.request.user)): return response_forbidden(self.request, self.article, self.urlpath) try: attachment_revision = form.save(commit=False) attachment = models.Attachment() attachment.article = self.article attachment.original_filename = attachment_revision.get_filename() attachment.save() attachment.articles.add(self.article) attachment_revision.attachment = attachment attachment_revision.set_from_request(self.request) attachment_revision.save() messages.success( self.request, _(u'%s was successfully added.') % attachment_revision.get_filename()) except models.IllegalFileExtension, e: transaction.rollback() messages.error(self.request, _(u'Your file could not be saved: %s') % e)