Пример #1
0
def user_management_failure_message(msg, as_manager=True):
    """Generic failure HTML for user management."""
    extra_html = ""
    if as_manager:
        extra_html = """
            <div>
                <a href={}>Return to user menu</a>
            </div>
        """.format(
            cc_html.get_generic_action_url(ACTION.MANAGE_USERS)
        )
    return cc_html.fail_with_error_stay_logged_in(msg, extra_html)
Пример #2
0
def user_management_success_message(msg, as_manager=True, additional_html=""):
    """Generic success HTML for user management."""
    extra_html = ""
    if as_manager:
        extra_html = """
            <div>
                <a href={}>Return to user menu</a>
            </div>
        """.format(
            cc_html.get_generic_action_url(ACTION.MANAGE_USERS)
        )
    return cc_html.simple_success_message(msg, additional_html + extra_html)
Пример #3
0
def offer_report_menu(session):
    """HTML page offering available reports."""
    html = pls.WEBSTART + u"""
        {}
        <h1>Reports</h1>
        <ul>
    """.format(
        session.get_current_user_html(),
    )
    for cls in Report.__subclasses__():
        html += u"<li><a href={}>{}</a></li>".format(
            cc_html.get_generic_action_url(ACTION.OFFER_REPORT)
                + cc_html.get_url_field_value_pair(PARAM.REPORT_ID,
                                                   cls.get_report_id()),
            cls.get_report_title()
        )
    return html + "</ul>" + cc_html.WEBEND
Пример #4
0
def manage_users(session):
    """HTML to view/edit users."""
    allusers = pls.db.fetch_all_objects_from_db(User, User.TABLENAME,
                                                User.FIELDS, True)
    allusers = sorted(allusers, key=lambda k: k.user)
    output = pls.WEBSTART + u"""
        {}
        <h1>Manage users</h1>
        <ul>
            <li><a href="{}">Add user</a></li>
        </ul>
        <table>
            <tr>
                <th>User name</th>
                <th>Actions</th>
                <th>Locked out?</th>
                <th>Last password change (UTC)</th>
                <th>May use web viewer?</th>
                <th>May view other users’ records?</th>
                <th>Sees all patients’ records when unfiltered?</th>
                <th>May upload data?</th>
                <th>May manage users?</th>
                <th>May register tablet devices?</th>
                <th>May use webstorage?</th>
                <th>May dump data?</th>
                <th>May run reports?</th>
                <th>May add notes?</th>
                <th>Click to delete use</th>
            </tr>
    """.format(
        session.get_current_user_html(),
        cc_html.get_generic_action_url(ACTION.ASK_TO_ADD_USER),
    ) + cc_html.WEBEND
    for u in allusers:
        if u.is_locked_out():
            enableuser = "******".format(
                get_url_enable_user(u.user)
            )
            lockedmsg = "Yes, until {}".format(cc_dt.format_datetime(
                u.locked_out_until(),
                DATEFORMAT.ISO8601
            ))
        else:
            enableuser = ""
            lockedmsg = "No"
        output += u"""
            <tr>
                <td>{username}</td>
                <td>
                    <a href="{url_edit}">Edit permissions</a>
                    | <a href="{url_changepw}">Change password</a>
                    {enableuser}
                </td>
                <td>{lockedmsg}</td>
                <td>{lastpwchange}</td>
                <td>{may_use_webviewer}</td>
                <td>{may_view_other_users_records}</td>
                <td>{view_all_patients_when_unfiltered}</td>
                <td>{may_upload}</td>
                <td>{superuser}</td>
                <td>{may_register_devices}</td>
                <td>{may_use_webstorage}</td>
                <td>{may_dump_data}</td>
                <td>{may_run_reports}</td>
                <td>{may_add_notes}</td>
                <td><a href="{url_delete}">Delete user {username}</a></td>
            </tr>
        """.format(
            url_edit=get_url_edit_user(u.user),
            url_changepw=cc_html.get_url_enter_new_password(u.user),
            enableuser=enableuser,
            lockedmsg=lockedmsg,
            lastpwchange=ws.webify(u.last_password_change_utc),
            may_use_webviewer=cc_html.get_yes_no(u.may_use_webviewer),
            may_view_other_users_records=cc_html.get_yes_no(
                u.may_view_other_users_records),
            view_all_patients_when_unfiltered=cc_html.get_yes_no(
                u.view_all_patients_when_unfiltered),
            may_upload=cc_html.get_yes_no(u.may_upload),
            superuser=cc_html.get_yes_no(u.superuser),
            may_register_devices=cc_html.get_yes_no(u.may_register_devices),
            may_use_webstorage=cc_html.get_yes_no(u.may_use_webstorage),
            may_dump_data=cc_html.get_yes_no(u.may_dump_data),
            may_run_reports=cc_html.get_yes_no(u.may_run_reports),
            may_add_notes=cc_html.get_yes_no(u.may_add_notes),
            url_delete=get_url_ask_delete_user(u.user),
            username=u.user,
        )
    output += u"""
        </table>
    """ + cc_html.WEBEND
    return output
Пример #5
0
def get_url_enable_user(username):
    """URL to enable a specific user."""
    return (
        cc_html.get_generic_action_url(ACTION.ENABLE_USER)
        + cc_html.get_url_field_value_pair(PARAM.USERNAME, username)
    )
Пример #6
0
def get_url_ask_delete_user(username):
    """URL to ask for confirmation to delete a specific user."""
    return (
        cc_html.get_generic_action_url(ACTION.ASK_DELETE_USER)
        + cc_html.get_url_field_value_pair(PARAM.USERNAME, username)
    )