コード例 #1
0
ファイル: views.py プロジェクト: CIMAC-CIDC/cidc-portal
def user_info():
    selected_user = request.args.get("user_id")

    all_trials = fetch_trials(session["jwt_token"])
    all_assays = fetch_assays(session["jwt_token"])

    retrieved_user_info = fetch_single_user(session["jwt_token"],
                                            selected_user)

    register_form = RegistrationForm(
        email=retrieved_user_info["email"],
        contact_email=retrieved_user_info.get("preferred_contact_email"),
        organization=retrieved_user_info.get("organization"),
        first_n=retrieved_user_info.get("first_n"),
        last_n=retrieved_user_info.get("last_n"),
        cidc_role=retrieved_user_info.get("position_description"),
        permissions=retrieved_user_info.get("permissions"),
    )

    # Fetch trials the user is a collaborator on.
    users_trials = fetch_users_trials(session["jwt_token"],
                                      retrieved_user_info["email"])["_items"]

    # Build a dict with the fancy names for the objects that make up permissions.
    permission_display = []

    for permission in retrieved_user_info["permissions"]:
        trial_name = next(
            (trial
             for trial in all_trials if trial["_id"] == permission["trial"]),
            None)["trial_name"]

        assay_name = next(
            (assay
             for assay in all_assays if assay["_id"] == permission["assay"]),
            None)["assay_name"]

        permission_display.append({
            "trial": trial_name,
            "assay": assay_name,
            "role": permission["role"]
        })

    return render_template(
        "admin_user_info.jinja2",
        retrieved_user_info=retrieved_user_info,
        register_form=register_form,
        users_trials=users_trials,
        role_list=ROLE_LIST,
        update_role_url=url_for_with_prefix("/admin/update_role"),
        add_user_to_trial_url=url_for_with_prefix("/admin/add_user_trial"),
        remove_user_from_trial_url=url_for_with_prefix(
            "/admin/remove_user_from_trial"),
        trial_assay_permission_types=TRIAL_ASSAY_PERMISSION_TYPES,
        assays=all_assays,
        all_trials=all_trials,
        permissions_display=permission_display,
    )
コード例 #2
0
ファイル: views.py プロジェクト: CIMAC-CIDC/cidc-portal
def remove_user_trial():
    user_id = request.form.get("user_id")
    new_trial = request.form.get("remove_user_from_trial")

    remove_user_from_trial(session["jwt_token"], new_trial, [user_id])

    return redirect(
        url_for_with_prefix("/admin/user_info?user_id=%s" % user_id))
コード例 #3
0
ファイル: views.py プロジェクト: CIMAC-CIDC/cidc-portal
def update_role():
    user_id = request.form.get("user_id")
    new_role = request.form.get("system_role")

    change_user_role(session["jwt_token"], user_id, new_role)

    return redirect(
        url_for_with_prefix("/admin/user_info?user_id=%s" % user_id))
コード例 #4
0
def remove_upload():
    session["cidc_user_info"] = get_user_info(session["jwt_token"])

    data_id = request.form.get("data_id")

    remove_data_record(session["jwt_token"], data_id)

    return redirect(url_for_with_prefix("/cimac_biofx/uploads"))
コード例 #5
0
 def wrapped(*args, **kwargs):
     if (
         "jwt_token" not in session
         or session["jwt_token"] is None
         or "cidc_user_info" not in session
         or session["cidc_user_info"]["role"] is None
     ):
         return redirect(url_for_with_prefix("/login"))
     return f(*args, **kwargs)
コード例 #6
0
def uploads():
    session["cidc_user_info"] = get_user_info(session["jwt_token"])

    olink_uploads = get_olink_status(session["jwt_token"])

    return render_template("upload_status.jinja2",
                           jwt=session["jwt_token"],
                           olink_uploads=olink_uploads,
                           remove_uploaded_file_url=url_for_with_prefix(
                               "/cimac_biofx/remove-upload"))
コード例 #7
0
ファイル: views.py プロジェクト: CIMAC-CIDC/cidc-portal
def add_user_trial():
    user_id = request.form.get("user_id")
    new_trial = request.form.get("add_user_to_trial")
    assay_type = request.form.get("assay_type")
    trial_permission = request.form.get("trial_permission")

    add_user_to_trial(session["jwt_token"], new_trial, [user_id], assay_type,
                      trial_permission)

    return redirect(
        url_for_with_prefix("/admin/user_info?user_id=%s" % user_id))