Skip to content

Commit b4b1b08

Browse files
zhouwenxuanzhouwenxuan
authored andcommitted
check tag files preview permission
1 parent f3d95ab commit b4b1b08

File tree

8 files changed

+24
-5
lines changed

8 files changed

+24
-5
lines changed

frontend/src/metadata/utils/file.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,7 @@ const _openOthers = (repoID, fileName, parentDir, fileType) => {
7474
};
7575

7676
export const openFile = (repoID, record, _openImage = () => {}) => {
77-
const canPreview = window.sfMetadataContext.canPreview();
78-
if (!record || !canPreview) return;
77+
if (!record) return;
7978
const fileName = getFileNameFromRecord(record);
8079
const isDir = checkIsDir(record);
8180
const parentDir = _getParentDir(record);
@@ -102,8 +101,6 @@ export const openFile = (repoID, record, _openImage = () => {}) => {
102101
};
103102

104103
export const openInNewTab = (repoID, record) => {
105-
const canPreview = window.sfMetadataContext.canPreview();
106-
if (!record || !canPreview) return;
107104
const isDir = checkIsDir(record);
108105
const fileName = getFileNameFromRecord(record);
109106
const parentDir = _getParentDir(record);

frontend/src/metadata/views/gallery/main.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,8 @@ const Main = ({ isLoadingMore, metadata, onDelete, onLoadMore, duplicateRecord,
206206
const handleDoubleClick = useCallback((event, image) => {
207207
event.preventDefault();
208208
const record = getRowById(metadata, image.id);
209+
const canPreview = window.sfMetadataContext.canPreview();
210+
if (!canPreview) return;
209211
openFile(repoID, record, () => {
210212
const index = images.findIndex(item => item.id === image.id);
211213
setImageIndex(index);

frontend/src/metadata/views/kanban/boards/board/card/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ const Card = ({
3131
if (titleColumn?.type !== CellType.FILE_NAME) return;
3232
event.stopPropagation();
3333
event.nativeEvent.stopImmediatePropagation();
34+
const canPreview = window.sfMetadataContext.canPreview();
35+
if (!canPreview) return;
3436
onOpenFile(record);
3537
}, [titleColumn, record, onOpenFile]);
3638

frontend/src/metadata/views/kanban/boards/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,8 @@ const Boards = ({ modifyRecord, deleteRecords, modifyColumnData, onCloseSettings
182182

183183
const onOpenFile = useCallback((record) => {
184184
const repoID = window.sfMetadataContext.getSetting('repoID');
185+
const canPreview = window.sfMetadataContext.canPreview();
186+
if (!canPreview) return;
185187
openFile(repoID, record, () => {
186188
currentImageRef.current = record;
187189
setImagePreviewerVisible(true);

frontend/src/metadata/views/table/table-main/records/record/cell/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,8 @@ const Cell = React.memo(({
154154
event.nativeEvent.stopImmediatePropagation();
155155
if (!isCellSelected) return;
156156
const repoID = window.sfMetadataContext.getSetting('repoID');
157+
const canPreview = window.sfMetadataContext.canPreview();
158+
if (!canPreview) return;
157159
openFile(repoID, record, () => {
158160
window.sfMetadataContext.eventBus.dispatch(EVENT_BUS_TYPE.OPEN_EDITOR, EDITOR_TYPE.PREVIEWER);
159161
});

frontend/src/metadata/views/table/table-main/records/record/cell/operation-btn/file-name-operation-btn/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ const FileNameOperationBtn = ({ column, record, ...props }) => {
2222
event.stopPropagation();
2323
event.nativeEvent.stopImmediatePropagation();
2424
const repoID = window.sfMetadataContext.getSetting('repoID');
25+
const canPreview = window.sfMetadataContext.canPreview();
26+
if (!canPreview) return;
2527
openFile(repoID, record, () => {
2628
window.sfMetadataContext.eventBus.dispatch(METADATA_EVENT_BUS_TYPE.OPEN_EDITOR, EDITOR_TYPE.PREVIEWER);
2729
});

frontend/src/tag/context.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import tagsAPI from './api';
22
import LocalStorage from '../metadata/utils/local-storage';
33
import EventBus from '../components/common/event-bus';
44
import { username, lang } from '../utils/constants';
5+
import { Utils } from '../utils/utils';
56

67
class Context {
78

@@ -36,6 +37,8 @@ class Context {
3637
this.eventBus = eventBus;
3738

3839
this.permission = repoInfo.permission !== 'admin' && repoInfo.permission !== 'rw' ? 'r' : 'rw';
40+
const { isCustomPermission, customPermission } = Utils.getUserPermission(repoInfo.permission);
41+
this.customPermission = isCustomPermission ? customPermission : null;
3942

4043
this.hasInit = true;
4144
}
@@ -72,6 +75,14 @@ class Context {
7275
return true;
7376
};
7477

78+
canPreview = () => {
79+
if (this.customPermission) {
80+
const { preview, modify } = this.customPermission.permission;
81+
return preview || modify;
82+
}
83+
return true;
84+
};
85+
7586
canAddTag = () => {
7687
if (this.permission === 'r') return false;
7788
return true;

frontend/src/tag/views/tag-files/tag-file/index.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,8 @@ const TagFile = ({ isSelected, repoID, file, tagsData, onSelectFile, openImagePr
7676

7777
const handelClickFileName = useCallback((event) => {
7878
event.preventDefault();
79-
if (isRenameing) return;
79+
const canPreview = window.sfTagsDataContext.canPreview();
80+
if (isRenameing || !canPreview) return;
8081
openFile(repoID, file, () => {
8182
openImagePreview(file);
8283
});

0 commit comments

Comments
 (0)