From 5eb01d9980c1be135d0f8ba65144591a4b4b4dbe Mon Sep 17 00:00:00 2001
From: cnathe
Date: Fri, 12 Dec 2025 14:31:03 -0600
Subject: [PATCH 1/2] Allow site admins to see all views (private and shared)
from the hidden query-manageViews page
---
.../labkey/query/controllers/InternalViewForm.java | 3 ++-
query/src/org/labkey/query/view/manageViews.jsp | 12 +++++++-----
2 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/query/src/org/labkey/query/controllers/InternalViewForm.java b/query/src/org/labkey/query/controllers/InternalViewForm.java
index c8bc14c560a..0a8612e3b96 100644
--- a/query/src/org/labkey/query/controllers/InternalViewForm.java
+++ b/query/src/org/labkey/query/controllers/InternalViewForm.java
@@ -69,7 +69,8 @@ public static void checkEdit(ViewContext context, CstmView view)
}
else
{
- if (view.getCustomViewOwner().intValue() != context.getUser().getUserId())
+ // must be owner or site admin
+ if (!context.getUser().hasSiteAdminPermission() && view.getCustomViewOwner().intValue() != context.getUser().getUserId())
{
throw new UnauthorizedException();
}
diff --git a/query/src/org/labkey/query/view/manageViews.jsp b/query/src/org/labkey/query/view/manageViews.jsp
index e5196c99437..4fd9cb403cc 100644
--- a/query/src/org/labkey/query/view/manageViews.jsp
+++ b/query/src/org/labkey/query/view/manageViews.jsp
@@ -59,14 +59,16 @@
QueryManager mgr = QueryManager.get();
List views = new ArrayList<>();
- if (getViewContext().hasPermission(UpdatePermission.class))
+ if (getViewContext().getUser().hasSiteAdminPermission())
{
- views.addAll(mgr.getCstmViews(c, schemaName, queryName, null, null, false, true));
+ views.addAll(mgr.getCstmViews(c, schemaName, queryName, null, null, false, false));
}
-
- if (!user.isGuest())
+ else
{
- views.addAll(mgr.getCstmViews(c, schemaName, queryName, null, user, false, false));
+ if (getViewContext().hasPermission(UpdatePermission.class))
+ views.addAll(mgr.getCstmViews(c, schemaName, queryName, null, null, false, true));
+ if (!user.isGuest())
+ views.addAll(mgr.getCstmViews(c, schemaName, queryName, null, user, false, false));
}
// UNDONE: Requires queryName and schemaName for now. We need a method to get all session views in a container.
From 0eb8f9217881f492eb0a093be23b07b9b2315f0c Mon Sep 17 00:00:00 2001
From: cnathe
Date: Fri, 12 Dec 2025 14:31:12 -0600
Subject: [PATCH 2/2] css classes to make the static table more readable
---
.../src/org/labkey/query/view/manageViews.jsp | 25 +++++++++++--------
1 file changed, 14 insertions(+), 11 deletions(-)
diff --git a/query/src/org/labkey/query/view/manageViews.jsp b/query/src/org/labkey/query/view/manageViews.jsp
index 4fd9cb403cc..d4f52746f04 100644
--- a/query/src/org/labkey/query/view/manageViews.jsp
+++ b/query/src/org/labkey/query/view/manageViews.jsp
@@ -109,22 +109,25 @@
<% } %>
-
+
- | Schema |
- Query |
- View Name |
- Flags |
- Owner |
- Created |
- Created By |
- Modified |
- Modified By |
+ Schema |
+ Query |
+ View Name |
+ Flags |
+ Owner |
+ Created |
+ Created By |
+ Modified |
+ Modified By |
+ |
<% if (getViewContext().hasPermission(UpdatePermission.class))
{
+ int count = 1;
for (CstmView view : views)
{
+ count++;
List flags = new ArrayList<>();
if (view.getCustomViewId() == 0)
flags.add("session");
@@ -135,7 +138,7 @@
if (mgr.isSnapshot(view.getFlags()))
flags.add("shapshot");
%>
-
+
| <%=h(view.getSchema())%>
|
<%=h(view.getQueryName())%>
|