mirror of
https://github.com/hcengineering/platform.git
synced 2026-09-12 04:37:44 +02:00
EQMS-1650: External approvers (#9987)
Signed-off-by: Alexey Zinoviev <alexey.zinoviev@xored.com>
This commit is contained in:
@@ -59,7 +59,8 @@ import core, {
|
||||
withContext,
|
||||
type WithLookup,
|
||||
type WorkspaceIds,
|
||||
type WorkspaceUuid
|
||||
type WorkspaceUuid,
|
||||
getClassCollaborators
|
||||
} from '@hcengineering/core'
|
||||
import {
|
||||
type ConnectionMgr,
|
||||
@@ -598,14 +599,14 @@ abstract class PostgresAdapterBase implements DbAdapter {
|
||||
const privateCheck = domain === DOMAIN_SPACE ? ' OR sec.private = false' : ''
|
||||
const archivedCheck = showArchived ? '' : ' AND sec.archived = false'
|
||||
const q = `(sec._id = '${core.space.Space}' OR sec."_class" = '${core.class.SystemSpace}' OR sec.members @> '{"${acc.uuid}"}'${privateCheck})${archivedCheck}`
|
||||
const res = `INNER JOIN ${translateDomain(DOMAIN_SPACE)} AS sec ON sec._id = ${domain}.${key} AND sec."workspaceId" = ${vars.add(this.workspaceId, '::uuid')} AND ${q}`
|
||||
const res = `INNER JOIN ${translateDomain(DOMAIN_SPACE)} AS sec ON sec._id = ${domain}.${key} AND sec."workspaceId" = ${vars.add(this.workspaceId, '::uuid')}`
|
||||
|
||||
const collabSec = this.modelDb.findAllSync(core.class.ClassCollaborators, { attachedTo: _class })[0]
|
||||
const collabSec = getClassCollaborators(this.modelDb, this.hierarchy, _class)
|
||||
if (collabSec?.provideSecurity === true && [AccountRole.Guest, AccountRole.ReadOnlyGuest].includes(acc.role)) {
|
||||
const collab = ` INNER JOIN ${translateDomain(DOMAIN_COLLABORATOR)} AS collab_sec ON collab_sec.collaborator = '${acc.uuid}' AND collab_sec."attachedTo" = ${domain}._id AND collab_sec."workspaceId" = ${vars.add(this.workspaceId, '::uuid')} AND ${q}`
|
||||
const collab = ` INNER JOIN ${translateDomain(DOMAIN_COLLABORATOR)} AS collab_sec ON collab_sec.collaborator = '${acc.uuid}' AND collab_sec."attachedTo" = ${domain}._id AND collab_sec."workspaceId" = ${vars.add(this.workspaceId, '::uuid')} OR ${q}`
|
||||
return res + collab
|
||||
}
|
||||
return res
|
||||
return `${res} AND ${q}`
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user