Exemplo n.º 1
0
    def decorated_function(*args, **kwargs):
        token = None
        apt_login = None
        if "Authorization" in flask.request.headers:
            base64string = flask.request.headers["Authorization"]
            base64string = base64string.split()[1].strip()
            userstring = base64.b64decode(base64string)
            (apt_login, token) = userstring.decode("utf-8").split(":")
        token_auth = False
        if token and apt_login:
            user = UsersLogic.get_by_api_login(apt_login).first()
            if (user and user.api_token == token
                    and user.api_token_expiration >= datetime.date.today()):

                if user.proxy and "username" in flask.request.form:
                    user = UsersLogic.get(
                        flask.request.form["username"]).first()

                token_auth = True
                flask.g.user = user
        if not token_auth:
            url = 'https://' + app.config["PUBLIC_COPR_HOSTNAME"]
            url = helpers.fix_protocol_for_frontend(url)

            output = {
                "output":
                "notok",
                "error":
                "Login invalid/expired. Please visit {0}/api to get or renew your API token."
                .format(url),
            }
            jsonout = flask.jsonify(output)
            jsonout.status_code = 401
            return jsonout
        return f(*args, **kwargs)
Exemplo n.º 2
0
def coprs_migration_report(username=None):
    if not username and not flask.g.user:
        return generic_error("You are not logged in")
    elif not username:
        username = flask.g.user.name
    user = UsersLogic.get(username).first()

    coprs = CoprsLogic.filter_without_group_projects(CoprsLogic.get_multiple_owned_by_username(username)).all()
    for group in UsersLogic.get_groups_by_fas_names_list(user.user_teams).all():
        coprs.extend(CoprsLogic.get_multiple_by_group_id(group.id).all())

    return render_migration_report(coprs, user=user)
Exemplo n.º 3
0
def coprs_migration_report(username=None):
    if not username and not flask.g.user:
        return generic_error("You are not logged in")
    elif not username:
        username = flask.g.user.name
    user = UsersLogic.get(username).first()

    coprs = CoprsLogic.filter_without_group_projects(
        CoprsLogic.get_multiple_owned_by_username(username)).all()
    for group in UsersLogic.get_groups_by_fas_names_list(
            user.user_teams).all():
        coprs.extend(CoprsLogic.get_multiple_by_group_id(group.id).all())

    return render_migration_report(coprs, user=user)
Exemplo n.º 4
0
 def test_delete_data_view(self, f_users, f_fas_groups, f_coprs, f_db):
     r = self.tc.get("/user/delete")
     user = UsersLogic.get(self.u1.username).one()
     assert not user.admin
     assert not user.api_login
Exemplo n.º 5
0
 def test_delete_user_data(self, f_users, f_fas_groups, f_coprs, f_db):
     UsersLogic.delete_user_data(self.u1)
     self.db.session.commit()
     user = UsersLogic.get(self.u1.username).one()
     assert not user.admin
     assert not user.api_login