1
2
3 import flask
4 from flask import render_template, url_for
5 from coprs.exceptions import InsufficientRightsException
6 from coprs.forms import ActivateFasGroupForm
7 from coprs.helpers import Paginator
8 from coprs.logic.complex_logic import ComplexLogic
9 from coprs.logic.coprs_logic import CoprsLogic
10 from coprs.logic.users_logic import UsersLogic
11
12 from ... import db
13 from ..misc import login_required
14
15 from . import groups_ns
16
17
18 @groups_ns.route("/activate/<fas_group>", methods=["GET", "POST"])
21 form = ActivateFasGroupForm()
22
23 if form.validate_on_submit():
24 if UsersLogic.is_blacklisted_group(fas_group):
25 flask.flash("This group is blacklisted and cannot be added.")
26 return flask.redirect(url_for(
27 "groups_ns.list_user_groups"))
28
29 if fas_group not in flask.g.user.user_teams:
30 raise InsufficientRightsException(
31 "User '{}' doesn't have access to fas group {}"
32 .format(flask.g.user.username, fas_group))
33
34 alias = form.name.data
35 group = UsersLogic.get_group_by_fas_name_or_create(
36 fas_group, alias)
37
38 db.session.add(group)
39 db.session.commit()
40
41 flask.flash(
42 "FAS group {} is activated in the Copr under the alias {} "
43 .format(fas_group, alias)
44 )
45 return flask.redirect(url_for(
46 "groups_ns.list_projects_by_group", group_name=alias))
47
48 else:
49 return flask.render_template(
50 "groups/activate_fas_group.html",
51 fas_group=fas_group,
52 form=form,
53 user=flask.g.user,
54 )
55
56
57 @groups_ns.route("/g/<group_name>/coprs/", defaults={"page": 1})
58 @groups_ns.route("/g/<group_name>/coprs/<int:page>")
59 -def list_projects_by_group(group_name, page=1):
75
96