WEb: Editor: Fixed sharing access (added canShare function), fixed rename function (added accessEdit function).
This commit is contained in:
parent
c633866f22
commit
922d25dcb4
@ -25,20 +25,23 @@ import {
|
|||||||
removeFromFavorite,
|
removeFromFavorite,
|
||||||
markAsFavorite,
|
markAsFavorite,
|
||||||
} from "@appserver/common/api/files";
|
} from "@appserver/common/api/files";
|
||||||
import { checkIsAuthenticated } from "@appserver/common/api/user";
|
|
||||||
import { getUser } from "@appserver/common/api/people";
|
import { getUser } from "@appserver/common/api/people";
|
||||||
import FilesFilter from "@appserver/common/api/files/filter";
|
import FilesFilter from "@appserver/common/api/files/filter";
|
||||||
|
|
||||||
import throttle from "lodash/throttle";
|
import throttle from "lodash/throttle";
|
||||||
import { isIOS, deviceType } from "react-device-detect";
|
import { isIOS, deviceType } from "react-device-detect";
|
||||||
import { homepage } from "../package.json";
|
import { homepage, id as productId } from "../package.json";
|
||||||
|
|
||||||
import { AppServerConfig } from "@appserver/common/constants";
|
import { AppServerConfig } from "@appserver/common/constants";
|
||||||
import SharingDialog from "files/SharingDialog";
|
import SharingDialog from "files/SharingDialog";
|
||||||
import { getDefaultFileName } from "files/utils";
|
import { getDefaultFileName, canShare, accessEdit } from "files/utils";
|
||||||
import i18n from "./i18n";
|
import i18n from "./i18n";
|
||||||
import { FolderType } from "@appserver/common/constants";
|
import { FolderType } from "@appserver/common/constants";
|
||||||
|
|
||||||
|
import store from "studio/store";
|
||||||
|
|
||||||
|
const { auth: authStore } = store;
|
||||||
|
|
||||||
let documentIsReady = false;
|
let documentIsReady = false;
|
||||||
|
|
||||||
const text = "text";
|
const text = "text";
|
||||||
@ -52,6 +55,10 @@ let docSaved = null;
|
|||||||
let docEditor;
|
let docEditor;
|
||||||
let fileInfo;
|
let fileInfo;
|
||||||
let successAuth;
|
let successAuth;
|
||||||
|
let isSharingAccess;
|
||||||
|
let folder;
|
||||||
|
let user;
|
||||||
|
let isAdmin;
|
||||||
const url = window.location.href;
|
const url = window.location.href;
|
||||||
const filesUrl = url.substring(0, url.indexOf("/doceditor"));
|
const filesUrl = url.substring(0, url.indexOf("/doceditor"));
|
||||||
|
|
||||||
@ -92,6 +99,8 @@ const Editor = () => {
|
|||||||
|
|
||||||
const init = async () => {
|
const init = async () => {
|
||||||
try {
|
try {
|
||||||
|
await authStore.init();
|
||||||
|
|
||||||
if (!fileId) return;
|
if (!fileId) return;
|
||||||
|
|
||||||
console.log(
|
console.log(
|
||||||
@ -104,9 +113,8 @@ const Editor = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//showLoader();
|
//showLoader();
|
||||||
|
|
||||||
const docApiUrl = await getDocServiceUrl();
|
const docApiUrl = await getDocServiceUrl();
|
||||||
successAuth = await checkIsAuthenticated();
|
successAuth = authStore.isAuthenticated;
|
||||||
|
|
||||||
if (!doc && !successAuth) {
|
if (!doc && !successAuth) {
|
||||||
window.open(
|
window.open(
|
||||||
@ -128,7 +136,28 @@ const Editor = () => {
|
|||||||
setIsAuthenticated(successAuth);
|
setIsAuthenticated(successAuth);
|
||||||
}
|
}
|
||||||
|
|
||||||
config = await openEdit(fileId, version, doc);
|
const settings = authStore.settingsStore.personal;
|
||||||
|
authStore.settingsStore.setCurrentProductId(productId);
|
||||||
|
isAdmin = authStore.isAdmin;
|
||||||
|
user = authStore.userStore.user;
|
||||||
|
let requests = [];
|
||||||
|
|
||||||
|
requests.push(openEdit(fileId, version, doc));
|
||||||
|
|
||||||
|
if (fileInfo) {
|
||||||
|
requests.push(getFolderInfo(fileInfo.folderId));
|
||||||
|
}
|
||||||
|
|
||||||
|
let configValue, folderValue;
|
||||||
|
|
||||||
|
try {
|
||||||
|
[configValue, folderValue] = await Promise.allSettled(requests);
|
||||||
|
} catch (e) {
|
||||||
|
console.error(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
config = configValue.value;
|
||||||
|
folder = folderValue && folderValue.value;
|
||||||
|
|
||||||
if (isDesktop) {
|
if (isDesktop) {
|
||||||
const isEncryption =
|
const isEncryption =
|
||||||
@ -223,13 +252,24 @@ const Editor = () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (
|
isSharingAccess =
|
||||||
config &&
|
fileInfo &&
|
||||||
config.document.permissions.edit &&
|
folder &&
|
||||||
config.document.permissions.modifyFilter &&
|
user &&
|
||||||
fileInfo
|
user.id &&
|
||||||
) {
|
canShare(
|
||||||
|
fileInfo,
|
||||||
|
folder.id,
|
||||||
|
folder.access,
|
||||||
|
user,
|
||||||
|
settings.personal,
|
||||||
|
isAdmin,
|
||||||
|
isDesktop
|
||||||
|
);
|
||||||
|
|
||||||
|
if (isSharingAccess) {
|
||||||
const sharingSettings = await SharingDialog.getSharingSettings(fileId);
|
const sharingSettings = await SharingDialog.getSharingSettings(fileId);
|
||||||
|
|
||||||
config.document.info = {
|
config.document.info = {
|
||||||
...config.document.info,
|
...config.document.info,
|
||||||
sharingSettings,
|
sharingSettings,
|
||||||
@ -404,9 +444,24 @@ const Editor = () => {
|
|||||||
let onRequestSharingSettings;
|
let onRequestSharingSettings;
|
||||||
let onRequestRename;
|
let onRequestRename;
|
||||||
|
|
||||||
if (fileInfo && config.document.permissions.modifyFilter) {
|
if (isSharingAccess) {
|
||||||
onRequestSharingSettings = onSDKRequestSharingSettings;
|
onRequestSharingSettings = onSDKRequestSharingSettings;
|
||||||
onRequestRename = onSDKRequestRename;
|
}
|
||||||
|
|
||||||
|
const canEdit =
|
||||||
|
fileInfo &&
|
||||||
|
folder &&
|
||||||
|
accessEdit(
|
||||||
|
fileInfo,
|
||||||
|
folder.id,
|
||||||
|
folder.access,
|
||||||
|
user,
|
||||||
|
isAdmin,
|
||||||
|
isDesktop
|
||||||
|
);
|
||||||
|
|
||||||
|
if (canEdit) {
|
||||||
|
onRequestRename = onSDKRequestRename; //TODO: check for rename
|
||||||
}
|
}
|
||||||
|
|
||||||
const events = {
|
const events = {
|
||||||
@ -544,7 +599,7 @@ const Editor = () => {
|
|||||||
{!isLoading ? (
|
{!isLoading ? (
|
||||||
<>
|
<>
|
||||||
<div id="editor"></div>
|
<div id="editor"></div>
|
||||||
{fileInfo && (
|
{isSharingAccess && (
|
||||||
<SharingDialog
|
<SharingDialog
|
||||||
isVisible={isVisible}
|
isVisible={isVisible}
|
||||||
sharingObject={fileInfo}
|
sharingObject={fileInfo}
|
||||||
|
Loading…
Reference in New Issue
Block a user