Implement sharing save operation
[arvados-workbench2.git] / src / store / sharing-dialog / sharing-dialog-types.ts
1 // Copyright (C) The Arvados Authors. All rights reserved.
2 //
3 // SPDX-License-Identifier: AGPL-3.0
4
5 import { PermissionLevel } from '~/models/permission';
6
7 export const SHARING_DIALOG_NAME = 'SHARING_DIALOG_NAME';
8 export const SHARING_PUBLIC_ACCESS_FORM_NAME = 'SHARING_PUBLIC_ACCESS_FORM_NAME';
9 export const SHARING_MANAGEMENT_FORM_NAME = 'SHARING_MANAGEMENT_FORM_NAME';
10 export const SHARING_INVITATION_FORM_NAME = 'SHARING_INVITATION_FORM_NAME';
11
12 export interface SharingPublicAccessFormData {
13     enabled: boolean;
14     permissions: PermissionLevel;
15     permissionUuid: string;
16 }
17
18 export interface SharingManagementFormData {
19     permissions: SharingManagementFormDataRow[];
20     initialPermissions: SharingManagementFormDataRow[];
21 }
22
23 export interface SharingManagementFormDataRow {
24     email: string;
25     permissions: PermissionLevel;
26     permissionUuid: string;
27 }
28
29 export interface SharingInvitationFormData {
30     permissions: PermissionLevel;
31     invitedPeople: SharingInvitationFormPersonData[];
32 }
33
34 export interface SharingInvitationFormPersonData {
35     email: string;
36     name: string;
37     uuid: string;
38 }