Skip to content

Commit f340960

Browse files
committed
All: Allow using share permission with Joplin Server Business
1 parent 9f36b44 commit f340960

File tree

6 files changed

+15
-7
lines changed

6 files changed

+15
-7
lines changed

.eslintignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1364,6 +1364,7 @@ packages/lib/models/utils/getCanBeCollapsedFolderIds.js
13641364
packages/lib/models/utils/getCollator.js
13651365
packages/lib/models/utils/getConflictFolderId.js
13661366
packages/lib/models/utils/isItemId.js
1367+
packages/lib/models/utils/isJoplinServerVariant.js
13671368
packages/lib/models/utils/itemCanBeEncrypted.js
13681369
packages/lib/models/utils/onFolderDrop.test.js
13691370
packages/lib/models/utils/onFolderDrop.js

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1336,6 +1336,7 @@ packages/lib/models/utils/getCanBeCollapsedFolderIds.js
13361336
packages/lib/models/utils/getCollator.js
13371337
packages/lib/models/utils/getConflictFolderId.js
13381338
packages/lib/models/utils/isItemId.js
1339+
packages/lib/models/utils/isJoplinServerVariant.js
13391340
packages/lib/models/utils/itemCanBeEncrypted.js
13401341
packages/lib/models/utils/onFolderDrop.test.js
13411342
packages/lib/models/utils/onFolderDrop.js

packages/app-desktop/gui/ShareFolderDialog/ShareFolderDialog.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import { reg } from '@joplin/lib/registry';
2020
import useAsyncEffect, { AsyncEffectEvent } from '@joplin/lib/hooks/useAsyncEffect';
2121
import { ChangeEvent, Dropdown, DropdownOptions, DropdownVariant } from '../Dropdown/Dropdown';
2222
import shim from '@joplin/lib/shim';
23+
import { SettingsRecord } from '@joplin/lib/models/Setting';
2324

2425
const logger = Logger.create('ShareFolderDialog');
2526

@@ -421,10 +422,14 @@ function ShareFolderDialog(props: Props) {
421422
}
422423

423424
const mapStateToProps = (state: State) => {
425+
const getCanUseSharePermissions = (settings: Partial<SettingsRecord>) => {
426+
return [9, 10, 11].includes(settings['sync.target']) && !!settings['sync.10.canUseSharePermissions'];
427+
};
428+
424429
return {
425430
shares: state.shareService.shares,
426431
shareUsers: state.shareService.shareUsers,
427-
canUseSharePermissions: state.settings['sync.target'] === 10 && state.settings['sync.10.canUseSharePermissions'],
432+
canUseSharePermissions: getCanUseSharePermissions(state.settings),
428433
};
429434
};
430435

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export default (syncTargetId: number) => {
2+
return [9, 10, 11].includes(syncTargetId);
3+
};

packages/lib/models/utils/readOnly.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import ItemChange from '../ItemChange';
77
import Setting from '../Setting';
88
import { checkObjectHasProperties } from '@joplin/utils/object';
99
import isTrashableItem from '../../services/trash/isTrashableItem';
10+
import isJoplinServerVariant from './isJoplinServerVariant';
1011

1112
const logger = Logger.create('models/utils/readOnly');
1213

@@ -21,7 +22,7 @@ export interface ItemSlice {
2122
// synchronising with Joplin Cloud or if not sharing any notebook.
2223
export const needsShareReadOnlyChecks = (itemType: ModelType, changeSource: number, shareState: ShareState, disableReadOnlyCheck = false) => {
2324
if (disableReadOnlyCheck) return false;
24-
if (Setting.value('sync.target') !== 10) return false;
25+
if (!isJoplinServerVariant(Setting.value('sync.target'))) return false;
2526
if (changeSource === ItemChange.SOURCE_SYNC) return false;
2627
if (!Setting.value('sync.userId')) return false;
2728
if (![ModelType.Note, ModelType.Folder, ModelType.Resource].includes(itemType)) return false;

packages/lib/utils/userFetcher.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import SyncTargetRegistry from '../SyncTargetRegistry';
21
import eventManager, { EventName } from '../eventManager';
32
import Setting from '../models/Setting';
3+
import isJoplinServerVariant from '../models/utils/isJoplinServerVariant';
44
import { reg } from '../registry';
55
import Logger from '@joplin/utils/Logger';
66

@@ -17,10 +17,7 @@ interface UserApiResponse {
1717
}
1818

1919
const userFetcher = async () => {
20-
21-
if (Setting.value('sync.target') !== SyncTargetRegistry.nameToId('joplinCloud')) {
22-
return;
23-
}
20+
if (!isJoplinServerVariant(Setting.value('sync.target'))) return;
2421

2522
const syncTarget = reg.syncTarget();
2623
const fileApi = await syncTarget.fileApi();

0 commit comments

Comments
 (0)