コード例 #1
0
    def post(self, group_id=None, name=None):
        group = Group.get(self.session, group_id, name)
        if not group:
            return self.notfound()

        if "@" not in self.request.arguments["name"][0]:
            self.request.arguments["name"][
                0] += "@" + settings.service_account_email_domain

        if not can_create_service_account(self.session, self.current_user,
                                          group):
            return self.forbidden()

        form = ServiceAccountCreateForm(self.request.arguments)
        if not form.validate():
            return self.render(
                "service-account-create.html",
                form=form,
                group=group,
                alerts=self.get_form_alerts(form.errors),
            )

        if form.data["name"].split(
                "@")[-1] != settings.service_account_email_domain:
            form.name.errors.append(
                "All service accounts must have a username ending in {}".
                format(settings.service_account_email_domain))
            return self.render(
                "service-account-create.html",
                form=form,
                group=group,
                alerts=self.get_form_alerts(form.errors),
            )

        try:
            create_service_account(
                self.session,
                self.current_user,
                form.data["name"],
                form.data["description"],
                form.data["machine_set"],
                group,
            )
        except DuplicateServiceAccount:
            form.name.errors.append(
                "A user with name {} already exists".format(form.data["name"]))
        except BadMachineSet as e:
            form.machine_set.errors.append(str(e))

        if form.name.errors or form.machine_set.errors:
            return self.render(
                "service-account-create.html",
                form=form,
                group=group,
                alerts=self.get_form_alerts(form.errors),
            )

        url = "/groups/{}/service/{}?refresh=yes".format(
            group.name, form.data["name"])
        return self.redirect(url)
コード例 #2
0
    def get(self, group_id=None, name=None):
        group = Group.get(self.session, group_id, name)
        if not group:
            return self.notfound()

        if not can_create_service_account(self.session, self.current_user, group):
            return self.forbidden()

        form = ServiceAccountCreateForm()
        return self.render("service-account-create.html", form=form, group=group)
コード例 #3
0
    def get(self, *args, **kwargs):
        # type: (*Any, **Any) -> None
        group_id = kwargs.get("group_id")  # type: Optional[str]
        name = kwargs.get("name")  # type: Optional[str]

        group = Group.get(self.session, group_id, name)
        if not group:
            return self.notfound()

        if not can_create_service_account(self.session, self.current_user,
                                          group):
            return self.forbidden()

        form = ServiceAccountCreateForm()
        return self.render("service-account-create.html",
                           form=form,
                           group=group)