Skip to content

Commit

Permalink
fix: managed shared account folder's actions as per rights
Browse files Browse the repository at this point in the history
  • Loading branch information
dhavaldodiya committed Jun 28, 2023
1 parent c90a3f4 commit b297db0
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 20 deletions.
13 changes: 0 additions & 13 deletions src/commons/utils.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -74,19 +74,6 @@ export enum LineType {
SIGNATURE_PRE_SEP = '---'
}

// eslint-disable-next-line no-shadow
export enum FolderActionsType {
NEW = 'new',
MOVE = 'move',
DELETE = 'delete',
EDIT = 'edit',
EMPTY = 'empty',
REMOVE_FROM_LIST = 'removeFromList',
SHARES_INFO = 'sharesInfo',
SHARE = 'share',
MARK_ALL_READ = 'read'
}

// eslint-disable-next-line no-shadow
export enum ActionsType {
NEW = 'new',
Expand Down
8 changes: 6 additions & 2 deletions src/views/sidebar/parts/edit/edit-default-modal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,17 @@ import React, { FC, useCallback, useEffect, useMemo, useState } from 'react';
import ModalFooter from '../../../../carbonio-ui-commons/components/modals/modal-footer';
import ModalHeader from '../../../../carbonio-ui-commons/components/modals/modal-header';
import type { MainEditModalPropType } from '../../../../carbonio-ui-commons/types/sidebar';
import { useAppDispatch } from '../../../../hooks/redux';
import { folderAction } from '../../../../store/actions/folder-action';
import { translatedSystemFolders } from '../../utils';
import { FolderDetails } from './folder-details';
import NameInputRow from './name-input';
import RetentionPolicies from './retention-policies';
import { ShareFolderProperties } from './share-folder-properties';
import { isValidFolderName } from '../../../../carbonio-ui-commons/utils/utils';
import {
allowedActionOnSharedAccount,
isValidFolderName
} from '../../../../carbonio-ui-commons/utils/utils';
import { FolderActionsType } from '../../../../carbonio-ui-commons/constants/folders';

const retentionPeriod = [
{
Expand Down Expand Up @@ -301,6 +304,7 @@ const MainEditModal: FC<MainEditModalPropType> = ({ folder, onClose, setActiveMo
secondaryAction={(): void => setActiveModal('share')}
secondaryLabel={t('folder.modal.edit.add_share', 'Add Share')}
disabled={disableSubmit}
secondaryDisabled={!allowedActionOnSharedAccount(folder, FolderActionsType.SHARE)}
secondaryBtnType="outlined"
secondaryColor="primary"
tooltip={
Expand Down
2 changes: 1 addition & 1 deletion src/views/sidebar/tests/mark-read.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@ import * as shellMock from '../../../carbonio-ui-commons/test/mocks/carbonio-she
import { FOLDERS } from '../../../carbonio-ui-commons/test/mocks/carbonio-shell-ui-constants';
import { populateFoldersStore } from '../../../carbonio-ui-commons/test/mocks/store/folders';
import { setupTest } from '../../../carbonio-ui-commons/test/test-setup';
import { FolderActionsType } from '../../../commons/utils';
import { MAIL_APP_ID, MAILS_ROUTE } from '../../../constants';
import { generateStore } from '../../../tests/generators/store';
import { useLocalStorage } from '../../../carbonio-ui-commons/test/mocks/carbonio-shell-ui';
import Sidebar from '../sidebar';
import { FolderActionsType } from '../../../carbonio-ui-commons/constants/folders';

describe('Mark all as read', () => {
shellMock.getCurrentRoute.mockReturnValue({
Expand Down
17 changes: 13 additions & 4 deletions src/views/sidebar/use-folder-actions.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,8 @@
import { ModalManagerContext } from '@zextras/carbonio-design-system';
import { FOLDERS, getBridgedFunctions, t, useAppContext } from '@zextras/carbonio-shell-ui';
import { noop, startsWith } from 'lodash';
import React, { SyntheticEvent, useCallback, useContext, useMemo, useState } from 'react';
import React, { SyntheticEvent, useContext, useMemo } from 'react';
import type { Folder } from '../../carbonio-ui-commons/types/folder';
import { FolderActionsType } from '../../commons/utils';
import { getFolderIdParts } from '../../helpers/folders';
import { useAppDispatch, useAppSelector } from '../../hooks/redux';
import { useSelection } from '../../hooks/use-selection';
Expand All @@ -24,6 +23,8 @@ import { EmptyModal } from './empty-modal';
import { NewModal } from './new-modal';
import { SharesInfoModal } from './shares-info-modal';
import { SelectFolderModal } from './select-folder-modal';
import { allowedActionOnSharedAccount } from '../../carbonio-ui-commons/utils/utils';
import { FolderActionsType } from '../../carbonio-ui-commons/constants/folders';

type FolderActionsProps = {
id: string;
Expand Down Expand Up @@ -72,7 +73,11 @@ export const useFolderActions = (folder: Folder): Array<FolderActionsProps> => {
},
true
);
}
},
tooltipLabel: !allowedActionOnSharedAccount(folder, FolderActionsType.NEW)
? t('label.do_not_have_perm', `You don't have permission`)
: '',
disabled: !allowedActionOnSharedAccount(folder, FolderActionsType.NEW)
},
{
id: FolderActionsType.MOVE,
Expand Down Expand Up @@ -282,7 +287,11 @@ export const useFolderActions = (folder: Folder): Array<FolderActionsProps> => {
},
true
);
}
},
tooltipLabel: !allowedActionOnSharedAccount(folder, FolderActionsType.SHARE)
? t('label.do_not_have_perm', `You don't have permission`)
: '',
disabled: !allowedActionOnSharedAccount(folder, FolderActionsType.SHARE)
},
{
id: FolderActionsType.REMOVE_FROM_LIST,
Expand Down
1 change: 1 addition & 0 deletions translations/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -281,6 +281,7 @@
"destination_folder": "Destination Folder",
"discard_changes": "DISCARD CHANGES",
"disposal_threshold": "Disposal Threshold",
"do_not_have_perm": "You don't have permission",
"do_not_notify": "Do not notify",
"download": "Download",
"download_and_delete": "Download And Delete",
Expand Down

0 comments on commit b297db0

Please sign in to comment.