Fix guests links (#4839)

Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
This commit is contained in:
Denis Bykhov 2024-03-01 00:13:46 +06:00 committed by GitHub
parent 854325b5fa
commit 2e028e913e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 7 additions and 1 deletions

View File

@ -56,6 +56,9 @@
const link = await client.findOne(guest.class.PublicLink, { _id: decoded.linkId })
if (link == null) return false
restrictionStore.set(link.restrictions)
const mergedLoc = link.location
mergedLoc.path[0] = loc.path[0]
mergedLoc.path[1] = loc.path[1]
await doSyncLoc(link.location)
return true
}

View File

@ -6,6 +6,7 @@ import presentation from '@hcengineering/presentation'
import { fetchMetadataLocalStorage, getCurrentLocation, navigate } from '@hcengineering/ui'
import view from '@hcengineering/view'
import { getObjectLinkFragment } from '@hcengineering/view-resources'
import { workbenchId } from '@hcengineering/workbench'
export async function checkAccess (doc: Doc): Promise<void> {
const loc = getCurrentLocation()
@ -18,13 +19,15 @@ export async function checkAccess (doc: Doc): Promise<void> {
const clientFactory = await getResource(client.function.GetClient)
const _client = await clientFactory(token, endpoint)
const res = _client.findOne(doc._class, { _id: doc._id })
const res = await _client.findOne(doc._class, { _id: doc._id })
const hierarchy = _client.getHierarchy()
await _client.close()
if (res !== undefined) {
const panelComponent = hierarchy.classHierarchyMixin(doc._class, view.mixin.ObjectPanel)
const comp = panelComponent?.component ?? view.component.EditDoc
const loc = await getObjectLinkFragment(hierarchy, doc, {}, comp)
loc.path[0] = workbenchId
loc.path[1] = ws
// We have access, let's set correct tokens and redirect)
setMetadata(presentation.metadata.Token, token)
navigate(loc)