Move to src dir.
[edumed.git] / src / edumed / forum.py
diff --git a/src/edumed/forum.py b/src/edumed/forum.py
new file mode 100644 (file)
index 0000000..86cfb0c
--- /dev/null
@@ -0,0 +1,25 @@
+# -*- coding: utf-8 -*-
+from pybb.permissions import DefaultPermissionHandler
+
+
+class ForumPermissionHandler(DefaultPermissionHandler):
+    def may_post_as_admin(self, user):
+        """ return True if `user` may post as admin """
+        return False
+
+    def may_create_topic(self, user, forum):
+        """ return True if `user` is allowed to create a new topic in `forum` """
+        return user.is_authenticated()
+
+    def may_create_post(self, user, topic):
+        """ return True if `user` is allowed to create a new post in `topic` """
+
+        if topic.forum.hidden and (not user.is_staff):
+            # if topic is hidden, only staff may post
+            return False
+
+        if topic.closed and (not user.is_staff):
+            # if topic is closed, only staff may post
+            return False
+
+        return user.is_authenticated()