WEb: Editor: Fixed sharing access (added canShare function), fixed rename function (added accessEdit function).

This commit is contained in:
Tatiana Lopaeva 2021-08-12 17:38:17 +03:00
parent c633866f22
commit 922d25dcb4

View File

@ -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}