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