mirror of
https://github.com/hcengineering/platform.git
synced 2024-11-22 11:42:30 +03:00
Fix guests links (#4839)
Signed-off-by: Denis Bykhov <bykhov.denis@gmail.com>
This commit is contained in:
parent
854325b5fa
commit
2e028e913e
@ -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
|
||||
}
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user