15524: Fixes 'share with group' feature.
authorLucas Di Pentima <lucas@di-pentima.com.ar>
Mon, 26 Aug 2019 17:10:18 +0000 (14:10 -0300)
committerLucas Di Pentima <lucas@di-pentima.com.ar>
Mon, 26 Aug 2019 17:10:18 +0000 (14:10 -0300)
When sharing with a group, instead of creating a link for every group member,
just create a link connected to the specified group.

Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <ldipentima@veritasgenetics.com>

src/store/sharing-dialog/sharing-dialog-actions.ts

index bbd50dbb344c9661d875ac1da17c6d75a2afaceb..671c10fc3088ba8dc4630f93c83afcd55066709d 100644 (file)
@@ -20,7 +20,6 @@ import { withProgress } from "~/store/progress-indicator/with-progress";
 import { progressIndicatorActions } from '~/store/progress-indicator/progress-indicator-actions.ts';
 import { snackbarActions, SnackbarKind } from "../snackbar/snackbar-actions";
 import { extractUuidKind, ResourceKind } from "~/models/resource";
-import { LinkClass } from "~/models/link";
 
 export const openSharingDialog = (resourceUuid: string) =>
     (dispatch: Dispatch) => {
@@ -204,21 +203,6 @@ const sendInvitations = async (_: Dispatch, getState: () => RootState, { permiss
 
         const getGroupsFromForm = invitations.invitedPeople.filter((invitation) => extractUuidKind(invitation.uuid) === ResourceKind.GROUP);
         const getUsersFromForm = invitations.invitedPeople.filter((invitation) => extractUuidKind(invitation.uuid) === ResourceKind.USER);
-        const uuids = getGroupsFromForm.map(group => group.uuid);
-
-        const permissions = await permissionService.list({
-            filters: new FilterBuilder()
-                .addIn('tailUuid', uuids)
-                .addEqual('linkClass', LinkClass.PERMISSION)
-                .getFilters()
-        });
-
-        const usersFromGroups = await userService.list({
-            filters: new FilterBuilder()
-                .addIn('uuid', permissions.items.map(item => item.headUuid))
-                .getFilters()
-
-        });
 
         const invitationDataUsers = getUsersFromForm
             .map(person => ({
@@ -228,11 +212,11 @@ const sendInvitations = async (_: Dispatch, getState: () => RootState, { permiss
                 name: invitations.permissions
             }));
 
-        const invitationsDataGroups = usersFromGroups.items.map(
-            person => ({
+        const invitationsDataGroups = getGroupsFromForm.map(
+            group => ({
                 ownerUuid: user.uuid,
                 headUuid: dialog.data,
-                tailUuid: person.uuid,
+                tailUuid: group.uuid,
                 name: invitations.permissions
             })
         );