コード例 #1
0
 def apply(self, name):
     group = Group.query.filter_by(name=name).first()
     if not group:
         abort(404)
     membership = group.members.filter_by(user_id=current_user.id).first()
     if membership:
         if membership.is_applying:
             flash("You have already applied to this group.", 'warning')
         else:
             flash("You are already a member of this group.", 'warning')
         return redirect(url_for('GroupsView:index'))
     group_application_form = GroupApplicationForm()
     if group_application_form.validate_on_submit():
         membership = GroupMembership(group=group,
                                      user=current_user,
                                      is_applying=True,
                                      applied_on=datetime.datetime.utcnow())
         membership.application_text = group_application_form.application_text.data
         db.session.add(membership)
         db.session.commit()
         flash("Application received.", 'success')
         return redirect(url_for('GroupsView:get', name=group.name))
     return render_template('groups/application.html',
                            group=group,
                            group_application_form=group_application_form)
コード例 #2
0
ファイル: groups.py プロジェクト: J4LP/newauth
 def apply(self, name):
     group = Group.query.filter_by(name=name).first()
     if not group:
         abort(404)
     membership = group.members.filter_by(user_id=current_user.id).first()
     if membership:
         if membership.is_applying:
             flash("You have already applied to this group.", 'warning')
         else:
             flash("You are already a member of this group.", 'warning')
         return redirect(url_for('GroupsView:index'))
     group_application_form = GroupApplicationForm()
     if group_application_form.validate_on_submit():
         membership = GroupMembership(
             group=group,
             user=current_user,
             is_applying=True,
             applied_on=datetime.datetime.utcnow()
         )
         membership.application_text = group_application_form.application_text.data
         db.session.add(membership)
         db.session.commit()
         flash("Application received.", 'success')
         return redirect(url_for('GroupsView:get', name=group.name))
     return render_template('groups/application.html', group=group, group_application_form=group_application_form)
コード例 #3
0
 def join(self):
     group_id = request.form.get('group_id')
     if not group_id:
         abort(400)
     group = Group.query.filter_by(id=group_id).first()
     if not group:
         abort(404)
     membership = GroupMembership(user=current_user, group=group)
     membership.joined_on = datetime.datetime.utcnow()
     db.session.add(membership)
     db.session.commit()
     flash("You have joined the group '{}'".format(group.name), 'success')
     return redirect(url_for('GroupsView:get', name=group.name))
コード例 #4
0
ファイル: groups.py プロジェクト: J4LP/newauth
 def join(self):
     group_id = request.form.get('group_id')
     if not group_id:
         abort(400)
     group = Group.query.filter_by(id=group_id).first()
     if not group:
         abort(404)
     membership = GroupMembership(user=current_user, group=group)
     membership.joined_on = datetime.datetime.utcnow()
     db.session.add(membership)
     db.session.commit()
     flash("You have joined the group '{}'".format(group.name), 'success')
     return redirect(url_for('GroupsView:get', name=group.name))
コード例 #5
0
def make_admin(user):
    with app.app_context():
        u = User.query.filter_by(user_id=user).first()
        if not u:
            raise Exception('Could not find user {}.'.format(user))
        g = Group.query.filter_by(name=app.config['ADMIN_GROUP']).first()
        if not g:
            g = Group(name=app.config['ADMIN_GROUP'],
                      description='The admin group.',
                      type=GroupType.hidden.value)
        membership = GroupMembership(user=u, is_admin=True, can_ping=True)
        g.members.append(membership)
        db.session.add(g)
        db.session.commit()
コード例 #6
0
 def new_group(self):
     print('hello')
     new_group_form = GroupCreateForm()
     new_group_form.type.choices = [(element.name, element.value)
                                    for element in list(GroupType)]
     if new_group_form.validate_on_submit():
         group = Group()
         new_group_form.populate_obj(group)
         group.type = GroupType[new_group_form.type.data].value
         membership = GroupMembership(user=current_user,
                                      group=group,
                                      is_admin=True,
                                      can_ping=True)
         db.session.add(group)
         db.session.add(membership)
         db.session.commit()
         flash("Group '{}' created with success.".format(group.name),
               'success')
     else:
         flash_errors(new_group_form)
     return redirect(url_for('GroupsView:index'))