|
@@ -27,8 +27,10 @@ def check_perm(user, perm, forum, post_user_id=None):
|
|
"""
|
|
"""
|
|
if can_moderate(user=user, forum=forum):
|
|
if can_moderate(user=user, forum=forum):
|
|
return True
|
|
return True
|
|
|
|
+
|
|
if post_user_id and user.is_authenticated():
|
|
if post_user_id and user.is_authenticated():
|
|
return user.permissions[perm] and user.id == post_user_id
|
|
return user.permissions[perm] and user.id == post_user_id
|
|
|
|
+
|
|
return not user.permissions['banned'] and user.permissions[perm]
|
|
return not user.permissions['banned'] and user.permissions[perm]
|
|
|
|
|
|
|
|
|
|
@@ -95,24 +97,25 @@ def can_moderate(user, forum=None, perm=None):
|
|
def can_edit_post(user, post):
|
|
def can_edit_post(user, post):
|
|
"""Check if the post can be edited by the user"""
|
|
"""Check if the post can be edited by the user"""
|
|
topic = post.topic
|
|
topic = post.topic
|
|
|
|
+
|
|
if can_moderate(user, topic.forum):
|
|
if can_moderate(user, topic.forum):
|
|
return True
|
|
return True
|
|
|
|
+
|
|
if topic.locked or topic.forum.locked:
|
|
if topic.locked or topic.forum.locked:
|
|
return False
|
|
return False
|
|
|
|
+
|
|
return check_perm(user=user, perm='editpost', forum=post.topic.forum,
|
|
return check_perm(user=user, perm='editpost', forum=post.topic.forum,
|
|
post_user_id=post.user_id)
|
|
post_user_id=post.user_id)
|
|
|
|
|
|
|
|
|
|
def can_delete_post(user, post):
|
|
def can_delete_post(user, post):
|
|
"""Check if the post can be deleted by the user"""
|
|
"""Check if the post can be deleted by the user"""
|
|
-
|
|
|
|
return check_perm(user=user, perm='deletepost', forum=post.topic.forum,
|
|
return check_perm(user=user, perm='deletepost', forum=post.topic.forum,
|
|
post_user_id=post.user_id)
|
|
post_user_id=post.user_id)
|
|
|
|
|
|
|
|
|
|
def can_delete_topic(user, topic):
|
|
def can_delete_topic(user, topic):
|
|
"""Check if the topic can be deleted by the user"""
|
|
"""Check if the topic can be deleted by the user"""
|
|
-
|
|
|
|
return check_perm(user=user, perm='deletetopic', forum=topic.forum,
|
|
return check_perm(user=user, perm='deletetopic', forum=topic.forum,
|
|
post_user_id=topic.user_id)
|
|
post_user_id=topic.user_id)
|
|
|
|
|
|
@@ -121,14 +124,15 @@ def can_post_reply(user, topic):
|
|
"""Check if the user is allowed to post in the forum"""
|
|
"""Check if the user is allowed to post in the forum"""
|
|
if can_moderate(user, topic.forum):
|
|
if can_moderate(user, topic.forum):
|
|
return True
|
|
return True
|
|
|
|
+
|
|
if topic.locked or topic.forum.locked:
|
|
if topic.locked or topic.forum.locked:
|
|
return False
|
|
return False
|
|
|
|
+
|
|
return check_perm(user=user, perm='postreply', forum=topic.forum)
|
|
return check_perm(user=user, perm='postreply', forum=topic.forum)
|
|
|
|
|
|
|
|
|
|
def can_post_topic(user, forum):
|
|
def can_post_topic(user, forum):
|
|
"""Checks if the user is allowed to create a new topic in the forum"""
|
|
"""Checks if the user is allowed to create a new topic in the forum"""
|
|
-
|
|
|
|
return check_perm(user=user, perm='posttopic', forum=forum)
|
|
return check_perm(user=user, perm='posttopic', forum=forum)
|
|
|
|
|
|
|
|
|