diff --git a/LDK/api-src/org/labkey/api/ldk/buttons/ShowBulkEditButton.java b/LDK/api-src/org/labkey/api/ldk/buttons/ShowBulkEditButton.java index 6b8542f4..de409f7e 100644 --- a/LDK/api-src/org/labkey/api/ldk/buttons/ShowBulkEditButton.java +++ b/LDK/api-src/org/labkey/api/ldk/buttons/ShowBulkEditButton.java @@ -19,6 +19,7 @@ import org.labkey.api.module.Module; import org.labkey.api.query.DetailsURL; import org.labkey.api.security.permissions.AdminPermission; +import org.labkey.api.security.permissions.Permission; /** * User: bimber @@ -31,8 +32,13 @@ public class ShowBulkEditButton extends SimpleButtonConfigFactory protected String _queryName; public ShowBulkEditButton(Module owner, String schemaName, String queryName) + { + this(owner, schemaName, queryName, AdminPermission.class); + } + + public ShowBulkEditButton(Module owner, String schemaName, String queryName, Class permission) { super(owner, "Bulk Edit", DetailsURL.fromString("/ldk/apiBulkEdit.view?schemaName=" + schemaName + "&queryName=" + queryName)); - setPermission(AdminPermission.class); + setPermission(permission); } } diff --git a/LDK/api-src/org/labkey/api/ldk/security/DataAdminPermission.java b/LDK/api-src/org/labkey/api/ldk/security/DataAdminPermission.java new file mode 100644 index 00000000..b2a94600 --- /dev/null +++ b/LDK/api-src/org/labkey/api/ldk/security/DataAdminPermission.java @@ -0,0 +1,10 @@ +package org.labkey.api.ldk.security; + +import org.labkey.api.security.permissions.AbstractPermission; + +public class DataAdminPermission extends AbstractPermission +{ + public DataAdminPermission() { + super("DataAdminPermission", "Required for certain operations involving large-scale management of data"); + } +} \ No newline at end of file diff --git a/LDK/api-src/org/labkey/api/ldk/table/SimpleButtonConfigFactory.java b/LDK/api-src/org/labkey/api/ldk/table/SimpleButtonConfigFactory.java index 9e6b332a..2ef837de 100644 --- a/LDK/api-src/org/labkey/api/ldk/table/SimpleButtonConfigFactory.java +++ b/LDK/api-src/org/labkey/api/ldk/table/SimpleButtonConfigFactory.java @@ -125,7 +125,17 @@ protected String getJsHandler(TableInfo ti) @Override public boolean isAvailable(TableInfo ti) { - return _owner == null || ti.getUserSchema().getContainer().getActiveModules().contains(_owner); + if (_owner != null && !ti.getUserSchema().getContainer().getActiveModules().contains(_owner)) + { + return false; + } + + if (_permission != null && !ti.getUserSchema().getContainer().hasPermission(ti.getUserSchema().getUser(), _permission)) + { + return false; + } + + return true; } @Override diff --git a/LDK/resources/views/apiBulkEdit.view.xml b/LDK/resources/views/apiBulkEdit.view.xml index 8bf30bd4..38b3864c 100644 --- a/LDK/resources/views/apiBulkEdit.view.xml +++ b/LDK/resources/views/apiBulkEdit.view.xml @@ -1,6 +1,6 @@ - + diff --git a/LDK/src/org/labkey/ldk/query/DefaultTableCustomizer.java b/LDK/src/org/labkey/ldk/query/DefaultTableCustomizer.java index 2b16fa5b..fab0c124 100644 --- a/LDK/src/org/labkey/ldk/query/DefaultTableCustomizer.java +++ b/LDK/src/org/labkey/ldk/query/DefaultTableCustomizer.java @@ -469,6 +469,11 @@ private static boolean configureMoreActionsBtn(TableInfo ti, List