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