const loadSharingDialog = async (dispatch: Dispatch, getState: () => RootState, { apiClientAuthorizationService }: ServiceRepository) => {
const dialog = getDialog<SharingDialogData>(getState().dialog, SHARING_DIALOG_NAME);
+ const sharingURLsDisabled = getState().auth.config.clusterConfig.Workbench.DisableSharingURLsUI;
if (dialog) {
dispatch(progressIndicatorActions.START_WORKING(SHARING_DIALOG_NAME));
try {
const resourceUuid = dialog.data.resourceUuid;
await dispatch<any>(initializeManagementForm);
// For collections, we need to load the public sharing tokens
- if (extractUuidObjectType(resourceUuid) === ResourceObjectType.COLLECTION) {
+ if (!sharingURLsDisabled && extractUuidObjectType(resourceUuid) === ResourceObjectType.COLLECTION) {
const sharingTokens = await apiClientAuthorizationService.listCollectionSharingTokens(resourceUuid);
dispatch(resourcesActions.SET_RESOURCES([...sharingTokens.items]));
}
const { items: permissionLinks } = await permissionService.listResourcePermissions(resourceUuid);
dispatch<any>(initializePublicAccessForm(permissionLinks));
const filters = new FilterBuilder()
- .addIn('uuid', permissionLinks.map(({ tailUuid }) => tailUuid))
+ .addIn('uuid', Array.from(new Set(permissionLinks.map(({ tailUuid }) => tailUuid))))
.getFilters();
- const { items: users } = await userService.list({ filters, count: "none" });
- const { items: groups } = await groupsService.list({ filters, count: "none" });
+ const { items: users } = await userService.list({ filters, count: "none", limit: 1000 });
+ const { items: groups } = await groupsService.list({ filters, count: "none", limit: 1000 });
const getEmail = (tailUuid: string) => {
const user = users.find(({ uuid }) => uuid === tailUuid);