Browse Source

Fixed migrations and added default groups

sh4nks 10 years ago
parent
commit
19489a1ead

+ 3 - 0
flaskbb/management/views.py

@@ -404,6 +404,9 @@ def add_forum(category_id=None):
         flash(_("Forum successfully added."), "success")
         return redirect(url_for("management.forums"))
     else:
+        # by default all groups have access to a forum
+        form.groups.data = Group.query.order_by(Group.name.asc()).all()
+
         if category_id:
             category = Category.query.filter_by(id=category_id).first()
             form.category.data = category

+ 12 - 4
flaskbb/utils/decorators.py

@@ -13,6 +13,7 @@ from functools import wraps
 from flask import abort
 from flask_login import current_user
 
+
 def admin_required(f):
     @wraps(f)
     def decorated(*args, **kwargs):
@@ -44,14 +45,17 @@ def can_access_forum(func):
         forum_id = kwargs['forum_id'] if 'forum_id' in kwargs else args[1]
         from flaskbb.forum.models import Forum
         from flaskbb.user.models import Group
+
         # get list of user group ids
         if current_user.is_authenticated():
             user_groups = [gr.id for gr in current_user.groups]
         else:
             user_groups = [Group.get_guest_group().id]
+
         user_forums = Forum.query.filter(
-            Forum.id==forum_id, Forum.groups.any(Group.id.in_(user_groups))
+            Forum.id == forum_id, Forum.groups.any(Group.id.in_(user_groups))
         ).all()
+
         if len(user_forums) < 1:
             abort(403)
 
@@ -64,17 +68,21 @@ def can_access_topic(func):
         topic_id = kwargs['topic_id'] if 'topic_id' in kwargs else args[1]
         from flaskbb.forum.models import Forum, Topic
         from flaskbb.user.models import Group
-        topic = Topic.query.get(topic_id==topic_id)
+
+        topic = Topic.query.get(topic_id == topic_id)
         # get list of user group ids
         if current_user.is_authenticated():
             user_groups = [gr.id for gr in current_user.groups]
         else:
             user_groups = [Group.get_guest_group().id]
+
         user_forums = Forum.query.filter(
-            Forum.id==topic.forum.id, Forum.groups.any(Group.id.in_(user_groups))
+            Forum.id == topic.forum.id,
+            Forum.groups.any(Group.id.in_(user_groups))
         ).all()
+
         if len(user_forums) < 1:
             abort(403)
 
         return func(*args, **kwargs)
-    return decorated
+    return decorated

+ 0 - 16
migrations/versions/127be3fb000_added_m2m_forumgroups_table.py

@@ -22,26 +22,10 @@ def upgrade():
     sa.ForeignKeyConstraint(['forum_id'], ['forums.id'], name='fk_forum_id', use_alter=True),
     sa.ForeignKeyConstraint(['group_id'], ['groups.id'], )
     )
-    op.create_foreign_key('fk_fr_forum_id', 'forumsread', 'forums', ['forum_id'], ['id'])
-    op.create_foreign_key('fk_forum_id', 'moderators', 'forums', ['forum_id'], ['id'])
-    op.create_foreign_key('fk_post_topic_id', 'posts', 'topics', ['topic_id'], ['id'])
-    op.create_foreign_key('fk_settingsgroup', 'settings', 'settingsgroup', ['settingsgroup'], ['key'])
-    op.create_foreign_key('fk_topic_forum_id', 'topics', 'forums', ['forum_id'], ['id'])
-    op.create_foreign_key('fk_tr_topic_id', 'topicsread', 'topics', ['topic_id'], ['id'])
-    op.create_foreign_key('fk_tr_forum_id', 'topicsread', 'forums', ['forum_id'], ['id'])
-    op.create_foreign_key('fk_tracker_topic_id', 'topictracker', 'topics', ['topic_id'], ['id'])
     ### end Alembic commands ###
 
 
 def downgrade():
     ### commands auto generated by Alembic - please adjust! ###
-    op.drop_constraint('fk_tracker_topic_id', 'topictracker', type_='foreignkey')
-    op.drop_constraint('fk_tr_forum_id', 'topicsread', type_='foreignkey')
-    op.drop_constraint('fk_tr_topic_id', 'topicsread', type_='foreignkey')
-    op.drop_constraint('fk_topic_forum_id', 'topics', type_='foreignkey')
-    op.drop_constraint('fk_settingsgroup', 'settings', type_='foreignkey')
-    op.drop_constraint('fk_post_topic_id', 'posts', type_='foreignkey')
-    op.drop_constraint('fk_forum_id', 'moderators', type_='foreignkey')
-    op.drop_constraint('fk_fr_forum_id', 'forumsread', type_='foreignkey')
     op.drop_table('forumgroups')
     ### end Alembic commands ###