Exemplo n.º 1
0
def manage(id_usergroup):
    """Manage user group."""
    ug = Usergroup.query.filter_by(id=id_usergroup).one()
    form = UsergroupForm(request.form, obj=ug)

    if form.validate_on_submit():
        if not ug.is_admin(current_user.get_id()):
            # not enough right to modify group
            flash(
                _(
                    'Sorry, you don\'t have enough right to be able '
                    'to manage the group "%(name)s"',
                    name=ug.name), 'error')
            return redirect(url_for(".index"))

        # get form data
        ug2form = Usergroup()
        form.populate_obj(ug2form)
        # update group
        oldname = ug.name
        ug.name = ug2form.name
        ug.description = ug2form.description
        ug.join_policy = ug2form.join_policy
        ug.login_method = ug2form.login_method

        # update in db
        try:
            db.session.merge(ug)
            db.session.commit()
        except IntegrityError:
            db.session.rollback()
            flash(_('Group properies error'), 'error')
            # reload form with old values
            return render_template(
                "groups/new.html",
                form=form,
                action=_('Update'),
                subtitle=oldname,
            )
        except SQLAlchemyError:
            db.session.rollback()
            raise

        current_user.reload()
        return redirect(url_for(".index"))

    return render_template(
        "groups/new.html",
        form=form,
        action=_('Update'),
        subtitle=ug.name,
    )
Exemplo n.º 2
0
def manage(id_usergroup):
    """Manage user group."""
    ug = Usergroup.query.filter_by(id=id_usergroup).one()
    form = UsergroupForm(request.form, obj=ug)

    if form.validate_on_submit():
        if not ug.is_admin(current_user.get_id()):
            # not enough right to modify group
            flash(_('Sorry, you don\'t have enough right to be able '
                    'to manage the group "%(name)s"', name=ug.name), 'error')
            return redirect(url_for(".index"))

        # get form data
        ug2form = Usergroup()
        form.populate_obj(ug2form)
        # update group
        oldname = ug.name
        ug.name = ug2form.name
        ug.description = ug2form.description
        ug.join_policy = ug2form.join_policy
        ug.login_method = ug2form.login_method

        # update in db
        try:
            db.session.merge(ug)
            db.session.commit()
        except IntegrityError:
            db.session.rollback()
            flash(_('Group properies error'), 'error')
            # reload form with old values
            return render_template(
                "groups/new.html",
                form=form,
                action=_('Update'),
                subtitle=oldname,
            )
        except SQLAlchemyError:
            db.session.rollback()
            raise

        current_user.reload()
        return redirect(url_for(".index"))

    return render_template(
        "groups/new.html",
        form=form,
        action=_('Update'),
        subtitle=ug.name,
    )
Exemplo n.º 3
0
def new():
    """Create new user group."""
    form = UsergroupForm(request.form)

    if form.validate_on_submit():
        ug = Usergroup()
        id_user = current_user.get_id()
        user2join = User.query.get_or_404(id_user)
        form.populate_obj(ug)
        ug.join(status=UserUsergroup.USER_STATUS['ADMIN'],
                user=user2join)
        db.session.add(ug)
        try:
            db.session.commit()
        except IntegrityError:
            # catch integrity error
            db.session.rollback()
            flash(_('Group properies error'), 'error')
            # reload form with old values
            return render_template(
                "groups/new.html",
                form=form,
                action=_('Create'),
                subtitle=_("New group"),
            )
        except:
            # catch unknown error
            db.session.rollback()
            raise
        # group finally created
        current_user.reload()
        flash(_('Group "%(name)s" successfully created',
                name=ug.name), 'success')
        return redirect(url_for(".index"))

    return render_template(
        "groups/new.html",
        form=form,
        action=_('Create'),
        subtitle=_("New group"),
    )
Exemplo n.º 4
0
def new():
    """Create new user group."""
    form = UsergroupForm(request.form)

    if form.validate_on_submit():
        ug = Usergroup()
        id_user = current_user.get_id()
        user2join = User.query.get_or_404(id_user)
        form.populate_obj(ug)
        ug.join(status=UserUsergroup.USER_STATUS['ADMIN'], user=user2join)
        db.session.add(ug)
        try:
            db.session.commit()
        except IntegrityError:
            # catch integrity error
            db.session.rollback()
            flash(_('Group properies error'), 'error')
            # reload form with old values
            return render_template(
                "groups/new.html",
                form=form,
                action=_('Create'),
                subtitle=_("New group"),
            )
        except:
            # catch unknown error
            db.session.rollback()
            raise
        # group finally created
        current_user.reload()
        flash(_('Group "%(name)s" successfully created', name=ug.name),
              'success')
        return redirect(url_for(".index"))

    return render_template(
        "groups/new.html",
        form=form,
        action=_('Create'),
        subtitle=_("New group"),
    )