aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gn2/wqflask/oauth2/resources.py16
-rw-r--r--gn2/wqflask/templates/oauth2/view-resource-role.html32
2 files changed, 47 insertions, 1 deletions
diff --git a/gn2/wqflask/oauth2/resources.py b/gn2/wqflask/oauth2/resources.py
index 9ca057ab..58e02368 100644
--- a/gn2/wqflask/oauth2/resources.py
+++ b/gn2/wqflask/oauth2/resources.py
@@ -308,11 +308,25 @@ def view_resource_role(resource_id: UUID, role_id: UUID):
def __render_template__(**kwargs):
return render_ui("oauth2/view-resource-role.html", **kwargs)
+ def __fetch_users__(resource, role, unassigned_privileges):
+ return oauth2_get(
+ f"auth/resource/{resource_id}/role/{role_id}/users").either(
+ lambda error: __render_template__(
+ resource=resource,
+ role=role,
+ unassigned_privileges=unassigned_privileges,
+ user_error=process_error(error)),
+ lambda users: __render_template__(
+ resource=resource,
+ role=role,
+ unassigned_privileges=unassigned_privileges,
+ users=users))
+
def __fetch_all_roles__(resource, role):
return oauth2_get(f"auth/resource/{resource_id}/roles").either(
lambda error: __render_template__(
all_roles_error=process_error(error)),
- lambda all_roles: __render_template__(
+ lambda all_roles: __fetch_users__(
resource=resource,
role=role,
unassigned_privileges=[
diff --git a/gn2/wqflask/templates/oauth2/view-resource-role.html b/gn2/wqflask/templates/oauth2/view-resource-role.html
index c4c9d3fc..57008f44 100644
--- a/gn2/wqflask/templates/oauth2/view-resource-role.html
+++ b/gn2/wqflask/templates/oauth2/view-resource-role.html
@@ -98,6 +98,38 @@
</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%}
&nbsp;
</p>
{%endif%}