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