mirror of
https://github.com/hcengineering/platform.git
synced 2025-04-13 03:40:48 +00:00
ezqms-1029: fix permissions check for creating project doc from context menu (#6282)
Signed-off-by: Alexey Zinoviev <alexey.zinoviev@xored.com>
This commit is contained in:
parent
f09afc7eb3
commit
afd682ed9b
@ -39,7 +39,8 @@
|
||||
setCurrentProject,
|
||||
getProjectDocsHierarchy,
|
||||
isEditableProject,
|
||||
createDocument
|
||||
createDocument,
|
||||
canCreateChildDocument
|
||||
} from '../../utils'
|
||||
|
||||
import documents from '../../plugin'
|
||||
@ -129,17 +130,19 @@
|
||||
async function getSpaceActions (space: DocumentSpace): Promise<Action[]> {
|
||||
const actions = await getActions(space)
|
||||
|
||||
const action: Action = {
|
||||
icon: documents.icon.NewDocument,
|
||||
label: documents.string.CreateDocument,
|
||||
group: 'create',
|
||||
action: async () => {
|
||||
await createDocument(space)
|
||||
}
|
||||
}
|
||||
|
||||
if (spaceType?.projects === true && (await isEditableProject(project))) {
|
||||
actions.push(action)
|
||||
if (
|
||||
spaceType?.projects === true &&
|
||||
(await isEditableProject(project)) &&
|
||||
(await canCreateChildDocument(space, true))
|
||||
) {
|
||||
actions.push({
|
||||
icon: documents.icon.NewDocument,
|
||||
label: documents.string.CreateDocument,
|
||||
group: 'create',
|
||||
action: async () => {
|
||||
await createDocument(space)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
return orderActions(actions)
|
||||
|
@ -605,7 +605,8 @@ export async function canCreateChildTemplate (
|
||||
}
|
||||
|
||||
export async function canCreateChildDocument (
|
||||
doc?: Document | Document[] | DocumentSpace | DocumentSpace[] | ProjectDocument | ProjectDocument[]
|
||||
doc?: Document | Document[] | DocumentSpace | DocumentSpace[] | ProjectDocument | ProjectDocument[],
|
||||
includeProjects = false
|
||||
): Promise<boolean> {
|
||||
if (doc === null || doc === undefined) {
|
||||
return false
|
||||
@ -625,7 +626,7 @@ export async function canCreateChildDocument (
|
||||
|
||||
if (isSpace(hierarchy, doc)) {
|
||||
const spaceType = await client.findOne(documents.class.DocumentSpaceType, { _id: doc.type })
|
||||
return spaceType?.projects !== true
|
||||
return includeProjects || spaceType?.projects !== true
|
||||
}
|
||||
|
||||
if (isProjectDocument(hierarchy, doc)) {
|
||||
|
Loading…
Reference in New Issue
Block a user