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, )
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))
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))
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"))
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)
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"))
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))