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,
if article.current_revision.locked and not_locked:
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)
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)
if can_create and not (request.user.is_authenticated() or settings.ANONYMOUS_CREATE):
......
......@@ -48,7 +48,7 @@ class Article(models.Model):
def can_read(self, user=None):
return permissions.can_read(self, user)
def can_write(self, user=None):
def can_write(self, user):
return permissions.can_write(self, user)
def can_delete(self, user):
......
......@@ -44,10 +44,10 @@ class ArticlePlugin(models.Model):
created = models.DateTimeField(auto_now_add=True)
# Permission methods - you should override these, if they don't fit your logic.
def can_read(self, **kwargs):
return self.article.can_read(**kwargs)
def can_write(self, **kwargs):
return self.article.can_write(**kwargs)
def can_read(self, user):
return self.article.can_read(user)
def can_write(self, user):
return self.article.can_write(user)
def can_delete(self, user):
return self.article.can_delete(user)
def can_moderate(self, user):
......@@ -86,10 +86,10 @@ class ReusablePlugin(ArticlePlugin):
# Since the article relation may be None, we have to check for this
# before handling permissions....
def can_read(self, **kwargs):
return self.article.can_read(**kwargs) if self.article else False
def can_write(self, **kwargs):
return self.article.can_write(**kwargs) if self.article else False
def can_read(self, user):
return self.article.can_read(user) if self.article else False
def can_write(self, user):
return self.article.can_write(user) if self.article else False
def can_delete(self, user):
return self.article.can_delete(user) if self.article else False
def can_moderate(self, user):
......
......@@ -27,14 +27,13 @@ class Attachment(ReusablePlugin):
original_filename = models.CharField(max_length=256, verbose_name=_(u'original filename'), blank=True, null=True)
def can_write(self, **kwargs):
user = kwargs.get('user', None)
def can_write(self, user):
if not settings.ANONYMOUS and (not user or user.is_anonymous()):
return False
return ReusablePlugin.can_write(self, **kwargs)
return ReusablePlugin.can_write(self, user)
def can_delete(self, user):
return self.can_write(user=user)
return self.can_write(user)
class Meta:
verbose_name = _(u'attachment')
......
......@@ -29,14 +29,13 @@ class Image(RevisionPlugin):
# The plugin system is so awesome that the inheritor doesn't need to do
# anything! :D
def can_write(self, **kwargs):
user = kwargs.get('user', None)
def can_write(self, user):
if not settings.ANONYMOUS and (not user or user.is_anonymous()):
return False
return RevisionPlugin.can_write(self, **kwargs)
return RevisionPlugin.can_write(self, user)
def can_delete(self, user):
return self.can_write(user=user)
return self.can_write(user)
class Meta:
verbose_name = _(u'image')
......
......@@ -130,7 +130,7 @@ class RevisionAddView(ArticleMixin, FormView):
def dispatch(self, request, article, *args, **kwargs):
self.image = get_object_or_404(models.Image, article=article,
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 ArticleMixin.dispatch(self, request, article, *args, **kwargs)
......
......@@ -84,12 +84,12 @@ def get_content_snippet(content, keyword, max_words=30):
@register.filter
def can_read(obj, user):
"""Articles and plugins have a can_read method..."""
return obj.can_read(user=user)
return obj.can_read(user)
@register.filter
def can_write(obj, user):
"""Articles and plugins have a can_write method..."""
return obj.can_write(user=user)
return obj.can_write(user)
@register.filter
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