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..d4f52746f04 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. @@ -107,22 +109,25 @@ <% } %>

- +
- - - - - - - - - + + + + + + + + + + <% if (getViewContext().hasPermission(UpdatePermission.class)) { + int count = 1; for (CstmView view : views) { + count++; List flags = new ArrayList<>(); if (view.getCustomViewId() == 0) flags.add("session"); @@ -133,7 +138,7 @@ if (mgr.isSnapshot(view.getFlags())) flags.add("shapshot"); %> - +
SchemaQueryView NameFlagsOwnerCreatedCreated ByModifiedModified BySchemaQueryView NameFlagsOwnerCreatedCreated ByModifiedModified By
<%=h(view.getSchema())%> <%=h(view.getQueryName())%>