diff options
Diffstat (limited to 'gn2/wqflask/templates/oauth2')
8 files changed, 253 insertions, 142 deletions
diff --git a/gn2/wqflask/templates/oauth2/confirm-resource-role-unassign-privilege.html b/gn2/wqflask/templates/oauth2/confirm-resource-role-unassign-privilege.html new file mode 100644 index 00000000..988cf3b4 --- /dev/null +++ b/gn2/wqflask/templates/oauth2/confirm-resource-role-unassign-privilege.html @@ -0,0 +1,34 @@ +{%extends "base.html"%} +{%from "oauth2/profile_nav.html" import profile_nav%} +{%from "oauth2/display_error.html" import display_error%} +{%block title%}View User{%endblock%} +{%block content%} +<div class="container"> + {{profile_nav(uipages, user_privileges)}} + {{flash_me()}} + + <form id="frm_confirm_resource_role_unassign_privilege" + method="POST" + action="{{url_for('oauth2.resource.unassign_privilege_from_resource_role', + resource_id=resource.resource_id, + role_id=role.role_id)}}"> + <p> + Are you sure you want to unassign the privilege to + '{{privilege.privilege_description}}' from the role '{{role.role_name}}' + on resource '{{resource.resource_name}}'?</p> + <input type="hidden" + name="privilege_id" + value="{{privilege.privilege_id}}" /> + + <input type="submit" + name="confirm" + value="Cancel" + class="btn btn-success" /> + + <input type="submit" + name="confirm" + value="Unassign" + class="btn btn-danger" /> + </form> +</div> +{%endblock%} diff --git a/gn2/wqflask/templates/oauth2/create-role.html b/gn2/wqflask/templates/oauth2/create-role.html index f2bff7b4..6cf0bb78 100644 --- a/gn2/wqflask/templates/oauth2/create-role.html +++ b/gn2/wqflask/templates/oauth2/create-role.html @@ -7,31 +7,43 @@ {{profile_nav("roles", user_privileges)}} <h3>Create Role</h3> - {{flash_me()}} + <p>Create a new role to act on resource "{{resource.resource_name}}"</p> - {%if group_privileges_error is defined%} - {{display_error("Group Privileges", group_privileges_error)}} + {%if resource_role_error is defined%} + {{display_error("Resource Role", resource_role_error)}} {%else%} - {%if "group:role:create-role" in user_privileges%} - <form method="POST" action="{{url_for('oauth2.role.create_role')}}"> - <legend>Create Group Role</legend> + {%if "resource:role:create-role" in (user_privileges|map(attribute="privilege_id")) %} + <form method="POST" action="{{url_for('oauth2.resource.create_resource_role', + resource_id=resource.resource_id)}}"> + <legend>create resource role</legend> + + {{flash_me()}} + <div class="form-group"> <label for="role_name" class="form-label">Name</label> - <input type="text" id="role_name" name="role_name" required="required" - class="form-control" - {%if prev_role_name is defined and prev_role_name is not none%} - value="{{prev_role_name}}" - {%endif%} /> + <div class="input-group"> + <span class="input-group-addon"> + {{resource.resource_name|replace(" ", "_")}}:: + </span> + <input type="text" id="role_name" name="role_name" required="required" + class="form-control" + {%if prev_role_name is defined and prev_role_name is not none%} + value="{{prev_role_name}}" + {%endif%} /> + </div> + <span class="form-text text-muted"> + The name of the role will have the resource's name appended. + </span> </div> <label class="form-label">Privileges</label> - {%for priv in group_privileges%} + {%for priv in user_privileges%} <div class="checkbox"> - <label for="chk:{{priv.privilege_id}}"> - <input type="checkbox" id="chk:{{priv.privilege_id}}" + <label for="chk-{{priv.privilege_id}}"> + <input type="checkbox" id="chk-{{priv.privilege_id}}" name="privileges[]" value={{priv.privilege_id}} /> <span style="text-transform: capitalize;"> {{priv.privilege_description}} - </span> ({{priv.privilege_id}}) + </span> </label> </div> {%endfor%} diff --git a/gn2/wqflask/templates/oauth2/data-list-mrna.html b/gn2/wqflask/templates/oauth2/data-list-mrna.html index 728e95d4..c5c1c27e 100644 --- a/gn2/wqflask/templates/oauth2/data-list-mrna.html +++ b/gn2/wqflask/templates/oauth2/data-list-mrna.html @@ -92,7 +92,7 @@ <div class="row"> <span id="search-messages" class="alert-danger" style="display:none"></span> <form id="frm-search" - action="{{search_uri}}" + action="{{url_for('oauth2.data.json_search_mrna')}}" method="POST"> <legend>Search: mRNA Assay</legend> <input type="hidden" value="{{species_name}}" name="species" diff --git a/gn2/wqflask/templates/oauth2/data-list-phenotype.html b/gn2/wqflask/templates/oauth2/data-list-phenotype.html index e5172c70..d355f3f9 100644 --- a/gn2/wqflask/templates/oauth2/data-list-phenotype.html +++ b/gn2/wqflask/templates/oauth2/data-list-phenotype.html @@ -113,7 +113,8 @@ <form id="frm-search-traits" action="#" method="POST" - data-gn-server-url="{{gn_server_url}}"> + data-search-endpoint="{{search_endpoint}}" + data-pheno-results-template="{{pheno_results_template}}"> {%if dataset_type == "mrna"%} <legend>mRNA: Search</legend> {%else%} diff --git a/gn2/wqflask/templates/oauth2/profile_nav.html b/gn2/wqflask/templates/oauth2/profile_nav.html index aa752905..c79bccbc 100644 --- a/gn2/wqflask/templates/oauth2/profile_nav.html +++ b/gn2/wqflask/templates/oauth2/profile_nav.html @@ -17,13 +17,6 @@ </li> <li role="presentation" - {%if calling_page == "roles"%} - class="active" - {%endif%}> - <a href="{{url_for('oauth2.role.user_roles')}}">Roles</a> - </li> - - <li role="presentation" {%if calling_page == "resources"%} class="active" {%endif%}> diff --git a/gn2/wqflask/templates/oauth2/view-group-role.html b/gn2/wqflask/templates/oauth2/view-group-role.html deleted file mode 100644 index 5da023bf..00000000 --- a/gn2/wqflask/templates/oauth2/view-group-role.html +++ /dev/null @@ -1,102 +0,0 @@ -{%extends "base.html"%} -{%from "oauth2/profile_nav.html" import profile_nav%} -{%from "oauth2/display_error.html" import display_error%} -{%block title%}View User{%endblock%} -{%block content%} -<div class="container" style="min-width: 1250px;"> - {{profile_nav("roles", user_privileges)}} - <h3>View Group Role</h3> - - {{flash_me()}} - - <div class="container-fluid"> - <div class="row"> - <h3>Role Details</h3> - {%if group_role_error is defined%} - {{display_error("Group Role", group_role_error)}} - {%else%} - <table class="table"> - <caption>Details for '{{group_role.role.role_name}}' Role</caption> - <thead> - <tr> - <th>Privilege</th> - <th>Description</th> - <th>Action</th> - </tr> - </thead> - <tbody> - {%for privilege in group_role.role.privileges%} - <tr> - <td>{{privilege.privilege_id}}</td> - <td>{{privilege.privilege_description}}</td> - <td> - <form action="{{url_for( - 'oauth2.group.delete_privilege_from_role', - group_role_id=group_role.group_role_id)}}" - method="POST"> - <input type="hidden" name="privilege_id" - value="{{privilege.privilege_id}}" /> - <input type="submit" class="btn btn-danger" - value="Remove" - {%if not group_role.role.user_editable%} - disabled="disabled" - {%endif%} /> - </form> - </td> - </tr> - {%endfor%} - </tbody> - </table> - {%endif%} - </div> - - <div class="row"> - <h3>Other Privileges</h3> - <table class="table"> - <caption>Other Privileges not Assigned to this Role</caption> - <thead> - <tr> - <th>Privilege</th> - <th>Description</th> - <th>Action</th> - </tr> - </thead> - - <tbody> - {%for priv in group_privileges%} - <tr> - <td>{{priv.privilege_id}}</td> - <td>{{priv.privilege_description}}</td> - <td> - <form action="{{url_for( - 'oauth2.group.add_privilege_to_role', - group_role_id=group_role.group_role_id)}}" - method="POST"> - <input type="hidden" name="privilege_id" - value="{{priv.privilege_id}}" /> - <input type="submit" class="btn btn-warning" - value="Add to Role" - {%if not group_role.role.user_editable%} - disabled="disabled" - {%endif%} /> - </form> - </td> - </tr> - {%else%} - <tr> - <td colspan="3"> - <span class="glyphicon glyphicon-info-sign text-info"> - </span> - - <span class="text-info">All privileges assigned!</span> - </td> - </tr> - {%endfor%} - </tbody> - </table> - </div> - - </div> - -</div> -{%endblock%} diff --git a/gn2/wqflask/templates/oauth2/view-resource-role.html b/gn2/wqflask/templates/oauth2/view-resource-role.html new file mode 100644 index 00000000..4bd0ab45 --- /dev/null +++ b/gn2/wqflask/templates/oauth2/view-resource-role.html @@ -0,0 +1,149 @@ +{%extends "base.html"%} +{%from "oauth2/profile_nav.html" import profile_nav%} +{%from "oauth2/display_error.html" import display_error%} +{%block title%}View User{%endblock%} +{%block content%} + +{%macro unassign_button(resource_id, role_id, privilege_id)%} +<form method="GET" + action="{{url_for('oauth2.resource.unassign_privilege_from_resource_role', + resource_id=resource_id, + role_id=role_id)}}" + id="frm_unlink_privilege_{{privilege_id}}"> + <input type="hidden" name="resource_id" value="{{resource_id}}" /> + <input type="hidden" name="role_id" value="{{role_id}}" /> + <input type="hidden" name="privilege_id" value="{{privilege_id}}" /> + <input type="submit" value="Unassign" class="btn btn-danger" /> +</form> +{%endmacro%} + +<div class="container"> + <div class="row"> + {{profile_nav(uipages, user_privileges)}} + {{flash_me()}} + {%if resource_error is defined%} + {{display_error("Resource", resource_error)}} + {%else%} + <h3>Role for Resource '{{resource.resource_name}}'</h3> + {%if role_error is defined%} + {{display_error("Role", role_error)}} + {%else%} + <table class="table"> + <caption>Role '{{role.role_name}}' for resource '{{resource.resource_name}}'</caption> + <thead> + <tr> + <th>Role Name</th> + <th>Privilege</th> + <th>Action</th> + </tr> + </thead> + + <tbody> + {%for priv in role.privileges%} + {%if loop.index0 == 0%} + <tr> + <td rowspan="{{role.privileges | length}}" + style="text-align: center;vertical-align: middle;"> + {{role.role_name}}</td> + <td>{{priv.privilege_description}}</td> + <td>{{unassign_button(resource.resource_id, role.role_id, priv.privilege_id)}}</td> + </tr> + {%else%} + <tr> + <td>{{priv.privilege_description}}</td> + <td>{{unassign_button(resource.resource_id, role.role_id, priv.privilege_id)}}</td> + </tr> + {%endif%} + {%else%} + <tr> + <td colspan="3"> + <p class="text-info"> + <span class="glyphicon glyphicon-info-sign text-info"></span> + + This role has no privileges. + </p> + </td> + </tr> + {%endfor%} + </tbody> + </table> + </div> + + <div class="row"> + <form id="frm_assign_privileges" method="POST" action="#"> + <input type="hidden" name="resource_id" value="{{resource_id}}" /> + <input type="hidden" name="role_id" value="{{role_id}}" /> + {%if unassigned_privileges | length == 0%} + <p class="text-info"> + <strong>{{title}}</strong>: + <span class="glyphicon glyphicon-info-sign text-info"></span> + + There are no more privileges left to assign. + </p> + {%else%} + <fieldset> + <legend>Select privileges to assign to this role</legend> + {%for priv in unassigned_privileges%} + <div class="checkbox"> + <label for="rdo_{{priv.privilege_id}}"> + <input type="checkbox" value="{{priv.privilege_id}}" /> + {{priv.privilege_description}} + </label> + </div> + {%endfor%} + </fieldset> + + <input type="submit" class="btn btn-primary" value="Assign" /> + {%endif%} + </form> + </div> + + {%if user_error is defined%} + {{display_error("Users", user_error)}} + {%endif%} + + {%if users is defined and users | length > 0%} + <div class="row"> + <h3>Users</h3> + + <table class="table"> + <caption> + Users assigned role '{{role.role_name}}' on resource + '{{resource.resource_name}}' + </caption> + + <thead> + <tr> + <th>Email</th> + <th>Name</th> + </tr> + </thead> + + <tbody> + {%for user in users%} + <tr> + <td>{{user.email}}</td> + <td>{{user.name}}</td> + </tr> + {%endfor%} + </tbody> + </table> + </div> + {%endif%} + + {%if users is defined and users | length == 0%} + <div class="row"> + <h3>Delete this role</h3> + <p class="text-danger"> + <strong>Delete Role</strong>: + <span class="glyphicon glyphicon-exclamation-sign text-danger"></span> + + This will delete this role, and you will no longer have access to it. + </p> + </div> + {%endif%} + {%endif%} + {%endif%} +</div> + +{%endblock%} diff --git a/gn2/wqflask/templates/oauth2/view-resource.html b/gn2/wqflask/templates/oauth2/view-resource.html index 275fcb24..0788e30c 100644 --- a/gn2/wqflask/templates/oauth2/view-resource.html +++ b/gn2/wqflask/templates/oauth2/view-resource.html @@ -2,6 +2,10 @@ {%from "oauth2/profile_nav.html" import profile_nav%} {%from "oauth2/display_error.html" import display_error%} {%block title%}View User{%endblock%} +{%block css%} +<link rel="stylesheet" href="/static/new/css/pills.css" /> +<link rel="stylesheet" href="/static/new/css/resource-roles.css" /> +{%endblock%} {%block content%} <div class="container" style="min-width: 1250px;"> {{profile_nav("resources", user_privileges)}} @@ -230,7 +234,27 @@ </div> <div class="row"> - <h3>User Roles</h3> + <h3>Available Resource Roles</h3> + <div class="resource_roles"> + {%for role in resource_roles%} + <a class="pill" + href="{{url_for('oauth2.resource.view_resource_role', + resource_id=resource.resource_id, + role_id=role.role_id)}}" + title="Role page for role named '{{role.role_name}}'"> + {{role.role_name}} + </a> + {%endfor%} + </div> + <hr /> + <a title="create a new role for this resource" + href="{{url_for('oauth2.resource.create_resource_role', + resource_id=resource.resource_id)}}" + class="btn btn-info">New Role</a> + </div> + + <div class="row"> + <h3>Users: Assigned Roles</h3> {%if users_n_roles_error is defined%} {{display_error("Users and Roles", users_n_roles_error)}} {%else%} @@ -254,14 +278,14 @@ <th>Role</th> <th>Action</th> </tr> - {%for grole in user_row.roles%} + {%for role in user_row.roles%} <tr> <td> <a href="{{url_for( 'oauth2.role.role', - role_id=grole.role_id)}}" - title="Details for '{{grole.role_name}}' role"> - {{grole.role_name}} + role_id=role.role_id)}}" + title="Details for '{{role.role_name}}' role"> + {{role.role_name}} </a> </td> <td> @@ -270,8 +294,8 @@ method="POST"> <input type="hidden" name="user_id" value="{{user_row.user.user_id}}" /> - <input type="hidden" name="group_role_id" - value="{{grole.group_role_id}}"> + <input type="hidden" name="role_id" + value="{{role.role_id}}"> <input type="submit" value="Unassign" class="btn btn-danger" @@ -301,8 +325,8 @@ <div class="row"> <h3>Assign</h3> - {%if group_roles_error is defined%} - {{display_error("Group Roles", group_roles_error)}} + {%if resource_roles_error is defined%} + {{display_error("Resource Roles", resource_roles_error)}} {%elif users_error is defined%} {{display_error("Users", users_error)}} {%else%} @@ -312,13 +336,13 @@ method="POST" autocomplete="off"> <input type="hidden" name="resource_id" value="{{resource_id}}" /> <div class="form-group"> - <label for="group_role_id" class="form-label">Role</label> - <select class="form-control" name="group_role_id" - id="group_role_id" required="required"> - <option value="">Select role</option> - {%for grole in group_roles%} - <option value="{{grole.group_role_id}}"> - {{grole.role.role_name}} + <label for="role_id" class="form-label">Role</label> + <select class="form-control" name="role_id" + id="role_id" required="required"> + <option value="">Select role</option>> + {%for rrole in resource_roles%} + <option value="{{rrole.role_id}}"> + {{rrole.role_name}} </option> {%endfor%} </select> |