Commit 2d7957aa by benjaoming

Do not use kwargs for permission methods

parent d37e09cd
...@@ -132,10 +132,10 @@ def get_article(func=None, can_read=True, can_write=False, ...@@ -132,10 +132,10 @@ def get_article(func=None, can_read=True, can_write=False,
if article.current_revision.locked and not_locked: if article.current_revision.locked and not_locked:
return response_forbidden(request, article, urlpath) return response_forbidden(request, article, urlpath)
if can_read and not article.can_read(user=request.user): if can_read and not article.can_read(request.user):
return response_forbidden(request, article, urlpath) return response_forbidden(request, article, urlpath)
if (can_write or can_create) and not article.can_write(user=request.user): if (can_write or can_create) and not article.can_write(request.user):
return response_forbidden(request, article, urlpath) return response_forbidden(request, article, urlpath)
if can_create and not (request.user.is_authenticated() or settings.ANONYMOUS_CREATE): if can_create and not (request.user.is_authenticated() or settings.ANONYMOUS_CREATE):
......
...@@ -48,7 +48,7 @@ class Article(models.Model): ...@@ -48,7 +48,7 @@ class Article(models.Model):
def can_read(self, user=None): def can_read(self, user=None):
return permissions.can_read(self, user) return permissions.can_read(self, user)
def can_write(self, user=None): def can_write(self, user):
return permissions.can_write(self, user) return permissions.can_write(self, user)
def can_delete(self, user): def can_delete(self, user):
......
...@@ -44,10 +44,10 @@ class ArticlePlugin(models.Model): ...@@ -44,10 +44,10 @@ class ArticlePlugin(models.Model):
created = models.DateTimeField(auto_now_add=True) created = models.DateTimeField(auto_now_add=True)
# Permission methods - you should override these, if they don't fit your logic. # Permission methods - you should override these, if they don't fit your logic.
def can_read(self, **kwargs): def can_read(self, user):
return self.article.can_read(**kwargs) return self.article.can_read(user)
def can_write(self, **kwargs): def can_write(self, user):
return self.article.can_write(**kwargs) return self.article.can_write(user)
def can_delete(self, user): def can_delete(self, user):
return self.article.can_delete(user) return self.article.can_delete(user)
def can_moderate(self, user): def can_moderate(self, user):
...@@ -86,10 +86,10 @@ class ReusablePlugin(ArticlePlugin): ...@@ -86,10 +86,10 @@ class ReusablePlugin(ArticlePlugin):
# Since the article relation may be None, we have to check for this # Since the article relation may be None, we have to check for this
# before handling permissions.... # before handling permissions....
def can_read(self, **kwargs): def can_read(self, user):
return self.article.can_read(**kwargs) if self.article else False return self.article.can_read(user) if self.article else False
def can_write(self, **kwargs): def can_write(self, user):
return self.article.can_write(**kwargs) if self.article else False return self.article.can_write(user) if self.article else False
def can_delete(self, user): def can_delete(self, user):
return self.article.can_delete(user) if self.article else False return self.article.can_delete(user) if self.article else False
def can_moderate(self, user): def can_moderate(self, user):
......
...@@ -27,14 +27,13 @@ class Attachment(ReusablePlugin): ...@@ -27,14 +27,13 @@ class Attachment(ReusablePlugin):
original_filename = models.CharField(max_length=256, verbose_name=_(u'original filename'), blank=True, null=True) original_filename = models.CharField(max_length=256, verbose_name=_(u'original filename'), blank=True, null=True)
def can_write(self, **kwargs): def can_write(self, user):
user = kwargs.get('user', None)
if not settings.ANONYMOUS and (not user or user.is_anonymous()): if not settings.ANONYMOUS and (not user or user.is_anonymous()):
return False return False
return ReusablePlugin.can_write(self, **kwargs) return ReusablePlugin.can_write(self, user)
def can_delete(self, user): def can_delete(self, user):
return self.can_write(user=user) return self.can_write(user)
class Meta: class Meta:
verbose_name = _(u'attachment') verbose_name = _(u'attachment')
......
...@@ -29,14 +29,13 @@ class Image(RevisionPlugin): ...@@ -29,14 +29,13 @@ class Image(RevisionPlugin):
# The plugin system is so awesome that the inheritor doesn't need to do # The plugin system is so awesome that the inheritor doesn't need to do
# anything! :D # anything! :D
def can_write(self, **kwargs): def can_write(self, user):
user = kwargs.get('user', None)
if not settings.ANONYMOUS and (not user or user.is_anonymous()): if not settings.ANONYMOUS and (not user or user.is_anonymous()):
return False return False
return RevisionPlugin.can_write(self, **kwargs) return RevisionPlugin.can_write(self, user)
def can_delete(self, user): def can_delete(self, user):
return self.can_write(user=user) return self.can_write(user)
class Meta: class Meta:
verbose_name = _(u'image') verbose_name = _(u'image')
......
...@@ -130,7 +130,7 @@ class RevisionAddView(ArticleMixin, FormView): ...@@ -130,7 +130,7 @@ class RevisionAddView(ArticleMixin, FormView):
def dispatch(self, request, article, *args, **kwargs): def dispatch(self, request, article, *args, **kwargs):
self.image = get_object_or_404(models.Image, article=article, self.image = get_object_or_404(models.Image, article=article,
id=kwargs.get('image_id', None)) id=kwargs.get('image_id', None))
if not self.image.can_write(user=request.user): if not self.image.can_write(request.user):
return redirect(wiki_settings.LOGIN_URL) return redirect(wiki_settings.LOGIN_URL)
return ArticleMixin.dispatch(self, request, article, *args, **kwargs) return ArticleMixin.dispatch(self, request, article, *args, **kwargs)
......
...@@ -84,12 +84,12 @@ def get_content_snippet(content, keyword, max_words=30): ...@@ -84,12 +84,12 @@ def get_content_snippet(content, keyword, max_words=30):
@register.filter @register.filter
def can_read(obj, user): def can_read(obj, user):
"""Articles and plugins have a can_read method...""" """Articles and plugins have a can_read method..."""
return obj.can_read(user=user) return obj.can_read(user)
@register.filter @register.filter
def can_write(obj, user): def can_write(obj, user):
"""Articles and plugins have a can_write method...""" """Articles and plugins have a can_write method..."""
return obj.can_write(user=user) return obj.can_write(user)
@register.filter @register.filter
def can_delete(obj, user): def can_delete(obj, user):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment