19690: dummy option now displays in colimn-selector
[arvados-workbench2.git] / src / store / sharing-dialog / sharing-dialog-actions.ts
index 367eea814281824f8eb161d8afede65639ffc223..c0fdeda5a74a546ee7c8c350f72f3d9b3c413dba 100644 (file)
@@ -118,13 +118,14 @@ export const deleteSharingToken = (uuid: string) => async (dispatch: Dispatch, g
 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]));
             }
@@ -151,11 +152,11 @@ export const initializeManagementForm = async (dispatch: Dispatch, getState: ()
         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);