def activate_group(fas_group): form = ActivateFasGroupForm() if form.validate_on_submit(): if UsersLogic.is_blacklisted_group(fas_group): flask.flash("This group is blacklisted and cannot be added.") return flask.redirect(url_for( "groups_ns.list_user_groups")) if fas_group not in flask.g.user.user_teams: raise InsufficientRightsException( "User '{}' doesn't have access to fas group {}" .format(flask.g.user.username, fas_group)) alias = form.name.data group = UsersLogic.get_group_by_fas_name_or_create( fas_group, alias) db.session.add(group) db.session.commit() flask.flash( "FAS group {} is activated in the Copr under the alias {} " .format(fas_group, alias) ) return flask.redirect(url_for( "groups_ns.list_projects_by_group", group_name=alias)) else: return flask.render_template( "groups/activate_fas_group.html", fas_group=fas_group, form=form, user=flask.g.user, )
def activate_group(fas_group): form = ActivateFasGroupForm() if form.validate_on_submit(): if UsersLogic.is_blacklisted_group(fas_group): flask.flash("This group is blacklisted and cannot be added.") return flask.redirect(url_for("groups_ns.list_user_groups")) if fas_group not in flask.g.user.user_teams: raise InsufficientRightsException( "User '{}' doesn't have access to fas group {}".format( flask.g.user.username, fas_group)) alias = form.name.data group = UsersLogic.get_group_by_fas_name_or_create(fas_group, alias) db.session.add(group) db.session.commit() flask.flash( "FAS group {} is activated in the Copr under the alias {} ".format( fas_group, alias)) return flask.redirect( url_for("groups_ns.list_projects_by_group", group_name=alias)) else: return flask.render_template( "groups/activate_fas_group.html", fas_group=fas_group, form=form, user=flask.g.user, )
def test_raise_if_cant_delete(self, f_users, f_fas_groups, f_coprs): # Project owner should be able to delete his project CoprsLogic.raise_if_cant_delete(self.u2, self.c2) # Admin should be able to delete everything CoprsLogic.raise_if_cant_delete(self.u1, self.c2) # A user can't remove someone else's project with pytest.raises(InsufficientRightsException): CoprsLogic.raise_if_cant_delete(self.u2, self.c1) # Group member should be able to remove group project self.u2.openid_groups = {"fas_groups": ["somegroup"]} self.u3.openid_groups = {"fas_groups": ["somegroup"]} self.c2.group = UsersLogic.get_group_by_fas_name_or_create("somegroup") CoprsLogic.raise_if_cant_delete(self.u3, self.c2) # Once a member is kicked from a group, he can't delete # a project even though he originally created it self.u2.openid_groups = {"fas_groups": []} with pytest.raises(InsufficientRightsException): CoprsLogic.raise_if_cant_delete(self.u2, self.c2)