Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 54 additions & 3 deletions models/drive/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,12 @@ function defineDrive (builder: Builder): void {
icon: drive.icon.Drive,
baseClass: drive.class.Drive,
availablePermissions: [
drive.permission.CreateFolder,
drive.permission.UpdateFolder,
drive.permission.RemoveFolder,
drive.permission.CreateFile,
drive.permission.UpdateFile,
drive.permission.RemoveFile,
core.permission.UpdateSpace,
core.permission.ArchiveSpace,
core.permission.ForbidDeleteObject
Expand Down Expand Up @@ -326,7 +332,8 @@ function defineDrive (builder: Builder): void {
mode: ['context', 'browser'],
application: drive.app.Drive,
group: 'create'
}
},
visibilityTester: drive.function.CanCreateFolder
},
drive.action.CreateRootFolder
)
Expand Down Expand Up @@ -475,6 +482,7 @@ function defineFolder (builder: Builder): void {
actions: [
view.action.Open,
view.action.OpenInNewTab,
view.action.Delete,
print.action.Print,
tracker.action.EditRelatedTargets,
tracker.action.NewRelatedIssue
Expand All @@ -494,7 +502,8 @@ function defineFolder (builder: Builder): void {
mode: ['context', 'browser'],
application: drive.app.Drive,
group: 'create'
}
},
visibilityTester: drive.function.CanCreateFolder
},
drive.action.CreateChildFolder
)
Expand All @@ -518,6 +527,25 @@ function defineFolder (builder: Builder): void {
drive.action.RenameFolder
)

createAction(
builder,
{
action: view.actionImpl.Delete,
label: view.string.Delete,
icon: view.icon.Delete,
category: drive.category.Drive,
input: 'none',
target: drive.class.Folder,
context: {
mode: ['context', 'browser'],
application: drive.app.Drive,
group: 'edit'
},
visibilityTester: drive.function.CanDeleteFolder
},
drive.action.DeleteFolder
)

createAction(builder, {
...actionTemplates.move,
action: view.actionImpl.ShowPopup,
Expand All @@ -529,6 +557,7 @@ function defineFolder (builder: Builder): void {
}
},
target: drive.class.Folder,
visibilityTester: drive.function.CanUpdateFolder,
context: {
mode: ['browser', 'context'],
group: 'tools'
Expand Down Expand Up @@ -569,7 +598,8 @@ function defineFileVersion (builder: Builder): void {
mode: ['context', 'browser'],
application: drive.app.Drive,
group: 'edit'
}
},
visibilityTester: drive.function.CanUpdateFileVersion
},
drive.action.RestoreFileVersion
)
Expand Down Expand Up @@ -649,6 +679,7 @@ function defineFile (builder: Builder): void {
actions: [
view.action.Open,
view.action.OpenInNewTab,
view.action.Delete,
print.action.Print,
tracker.action.EditRelatedTargets,
tracker.action.NewRelatedIssue
Expand Down Expand Up @@ -692,6 +723,25 @@ function defineFile (builder: Builder): void {
drive.action.RenameFile
)

createAction(
builder,
{
action: view.actionImpl.Delete,
label: view.string.Delete,
icon: view.icon.Delete,
category: drive.category.Drive,
input: 'none',
target: drive.class.File,
context: {
mode: ['context', 'browser'],
application: drive.app.Drive,
group: 'edit'
},
visibilityTester: drive.function.CanDeleteFile
},
drive.action.DeleteFile
)

// createAction(
// builder,
// {
Expand Down Expand Up @@ -721,6 +771,7 @@ function defineFile (builder: Builder): void {
}
},
target: drive.class.File,
visibilityTester: drive.function.CanUpdateFile,
context: {
mode: ['browser', 'context'],
group: 'tools'
Expand Down
4 changes: 2 additions & 2 deletions models/drive/src/migration.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
//

import core, { type Blob, type Ref, DOMAIN_BLOB, generateId, toIdMap } from '@hcengineering/core'
import type { Drive, File, FileVersion, Resource } from '@hcengineering/drive'
import type { File, FileVersion, Resource } from '@hcengineering/drive'
import {
type MigrateOperation,
type MigrationClient,
Expand Down Expand Up @@ -56,7 +56,7 @@ async function migrateFileVersions (client: MigrationClient): Promise<void> {
collection: 'versions',
modifiedOn: file.modifiedOn,
modifiedBy: file.modifiedBy,
space: file.space as Ref<Drive>,
space: file.space,
title: exfile.title,
file: blob._id,
size: blob.size,
Expand Down
78 changes: 78 additions & 0 deletions models/drive/src/permissions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,84 @@ import core from '@hcengineering/core'
import drive from '@hcengineering/drive'

export function definePermissions (builder: Builder): void {
builder.createDoc(
core.class.Permission,
core.space.Model,
{
scope: 'space',
label: drive.string.CreateFilePermission,
description: drive.string.CreateFilePermissionDescription,
txClass: core.class.TxCreateDoc,
objectClass: drive.class.File
},
drive.permission.CreateFile
)

builder.createDoc(
core.class.Permission,
core.space.Model,
{
scope: 'space',
label: drive.string.UpdateFilePermission,
description: drive.string.UpdateFilePermissionDescription,
txClass: core.class.TxUpdateDoc,
objectClass: drive.class.File
},
drive.permission.UpdateFile
)

builder.createDoc(
core.class.Permission,
core.space.Model,
{
scope: 'space',
label: drive.string.RemoveFilePermission,
description: drive.string.RemoveFilePermissionDescription,
txClass: core.class.TxRemoveDoc,
objectClass: drive.class.File
},
drive.permission.RemoveFile
)

builder.createDoc(
core.class.Permission,
core.space.Model,
{
scope: 'space',
label: drive.string.CreateFolderPermission,
description: drive.string.CreateFolderPermissionDescription,
txClass: core.class.TxCreateDoc,
objectClass: drive.class.Folder
},
drive.permission.CreateFolder
)

builder.createDoc(
core.class.Permission,
core.space.Model,
{
scope: 'space',
label: drive.string.UpdateFolderPermission,
description: drive.string.UpdateFolderPermissionDescription,
txClass: core.class.TxUpdateDoc,
objectClass: drive.class.Folder
},
drive.permission.UpdateFolder
)

builder.createDoc(
core.class.Permission,
core.space.Model,
{
scope: 'space',
label: drive.string.RemoveFolderPermission,
description: drive.string.RemoveFolderPermissionDescription,
txClass: core.class.TxRemoveDoc,
objectClass: drive.class.Folder
},
drive.permission.RemoveFolder
)

builder.createDoc(
core.class.Permission,
core.space.Model,
Expand Down
8 changes: 8 additions & 0 deletions models/drive/src/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,14 @@ export default mergeIds(driveId, drive, {
DriveLinkProvider: '' as Resource<(doc: Doc, props: Record<string, any>) => Promise<Location>>,
FolderLinkProvider: '' as Resource<(doc: Doc, props: Record<string, any>) => Promise<Location>>,
FileLinkProvider: '' as Resource<(doc: Doc, props: Record<string, any>) => Promise<Location>>,
CanCreateFolder: '' as Resource<ViewActionAvailabilityFunction>,
CanUpdateFile: '' as Resource<ViewActionAvailabilityFunction>,
CanUpdateFolder: '' as Resource<ViewActionAvailabilityFunction>,
CanDeleteFile: '' as Resource<ViewActionAvailabilityFunction>,
CanDeleteFolder: '' as Resource<ViewActionAvailabilityFunction>,
CanRenameFile: '' as Resource<ViewActionAvailabilityFunction>,
CanRenameFolder: '' as Resource<ViewActionAvailabilityFunction>,
CanUpdateFileVersion: '' as Resource<ViewActionAvailabilityFunction>,
CanDeleteFileVersion: '' as Resource<ViewActionAvailabilityFunction>,
FileTitleProvider: '' as Resource<(client: Client, ref: Ref<Doc>, doc?: Doc) => Promise<string>>,
FolderTitleProvider: '' as Resource<(client: Client, ref: Ref<Doc>, doc?: Doc) => Promise<string>>
Expand All @@ -79,6 +85,8 @@ export default mergeIds(driveId, drive, {
CreateRootFolder: '' as Ref<Action>,
EditDrive: '' as Ref<Action>,
DownloadFile: '' as Ref<Action>,
DeleteFile: '' as Ref<Action>,
DeleteFolder: '' as Ref<Action>,
RenameFile: '' as Ref<Action>,
RenameFolder: '' as Ref<Action>,
DeleteFileVersion: '' as Ref<Action>,
Expand Down
14 changes: 13 additions & 1 deletion plugins/drive-assets/lang/cs.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,18 @@
"Restore": "Obnovit",
"Root": "/",
"ForbidCreateDrivePermission": "Zakázat vytvoření disku",
"ForbidCreateDrivePermissionDescription": "Zakazuje uživatelům vytvářet nové disky"
"ForbidCreateDrivePermissionDescription": "Zakazuje uživatelům vytvářet nové disky",
"CreateFilePermission": "Create File",
"CreateFilePermissionDescription": "Grants users ability to create files",
"UpdateFilePermission": "Update File",
"UpdateFilePermissionDescription": "Grants users ability to update files",
"RemoveFilePermission": "Remove File",
"RemoveFilePermissionDescription": "Grants users ability to remove files",
"CreateFolderPermission": "Create Folder",
"CreateFolderPermissionDescription": "Grants users ability to create folders",
"UpdateFolderPermission": "Update Folder",
"UpdateFolderPermissionDescription": "Grants users ability to update folders",
"RemoveFolderPermission": "Remove Folder",
"RemoveFolderPermissionDescription": "Grants users ability to remove folders"
}
}
14 changes: 13 additions & 1 deletion plugins/drive-assets/lang/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,18 @@
"Restore": "Wiederherstellen",
"Root": "/",
"ForbidCreateDrivePermission": "Laufwerkserstellung verbieten",
"ForbidCreateDrivePermissionDescription": "Verbietet Benutzern die Erstellung neuer Laufwerke"
"ForbidCreateDrivePermissionDescription": "Verbietet Benutzern die Erstellung neuer Laufwerke",
"CreateFilePermission": "Create File",
"CreateFilePermissionDescription": "Grants users ability to create files",
"UpdateFilePermission": "Update File",
"UpdateFilePermissionDescription": "Grants users ability to update files",
"RemoveFilePermission": "Remove File",
"RemoveFilePermissionDescription": "Grants users ability to remove files",
"CreateFolderPermission": "Create Folder",
"CreateFolderPermissionDescription": "Grants users ability to create folders",
"UpdateFolderPermission": "Update Folder",
"UpdateFolderPermissionDescription": "Grants users ability to update folders",
"RemoveFolderPermission": "Remove Folder",
"RemoveFolderPermissionDescription": "Grants users ability to remove folders"
}
}
14 changes: 13 additions & 1 deletion plugins/drive-assets/lang/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,18 @@
"Restore": "Restore",
"Root": "/",
"ForbidCreateDrivePermission": "Forbid create drive",
"ForbidCreateDrivePermissionDescription": "Forbid users creating new drives"
"ForbidCreateDrivePermissionDescription": "Forbid users creating new drives",
"CreateFilePermission": "Create File",
"CreateFilePermissionDescription": "Grants users ability to create files",
"UpdateFilePermission": "Update File",
"UpdateFilePermissionDescription": "Grants users ability to update files",
"RemoveFilePermission": "Remove File",
"RemoveFilePermissionDescription": "Grants users ability to remove files",
"CreateFolderPermission": "Create Folder",
"CreateFolderPermissionDescription": "Grants users ability to create folders",
"UpdateFolderPermission": "Update Folder",
"UpdateFolderPermissionDescription": "Grants users ability to update folders",
"RemoveFolderPermission": "Remove Folder",
"RemoveFolderPermissionDescription": "Grants users ability to remove folders"
}
}
14 changes: 13 additions & 1 deletion plugins/drive-assets/lang/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,18 @@
"Restore": "Restaurar",
"Root": "/",
"ForbidCreateDrivePermission": "Prohibir crear unidad",
"ForbidCreateDrivePermissionDescription": "Prohíbe a los usuarios crear nuevas unidades"
"ForbidCreateDrivePermissionDescription": "Prohíbe a los usuarios crear nuevas unidades",
"CreateFilePermission": "Create File",
"CreateFilePermissionDescription": "Grants users ability to create files",
"UpdateFilePermission": "Update File",
"UpdateFilePermissionDescription": "Grants users ability to update files",
"RemoveFilePermission": "Remove File",
"RemoveFilePermissionDescription": "Grants users ability to remove files",
"CreateFolderPermission": "Create Folder",
"CreateFolderPermissionDescription": "Grants users ability to create folders",
"UpdateFolderPermission": "Update Folder",
"UpdateFolderPermissionDescription": "Grants users ability to update folders",
"RemoveFolderPermission": "Remove Folder",
"RemoveFolderPermissionDescription": "Grants users ability to remove folders"
}
}
14 changes: 13 additions & 1 deletion plugins/drive-assets/lang/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,18 @@
"Restore": "Restaurer",
"Root": "/",
"ForbidCreateDrivePermission": "Interdire la création de disque",
"ForbidCreateDrivePermissionDescription": "Interdit aux utilisateurs de créer de nouveaux disques"
"ForbidCreateDrivePermissionDescription": "Interdit aux utilisateurs de créer de nouveaux disques",
"CreateFilePermission": "Create File",
"CreateFilePermissionDescription": "Grants users ability to create files",
"UpdateFilePermission": "Update File",
"UpdateFilePermissionDescription": "Grants users ability to update files",
"RemoveFilePermission": "Remove File",
"RemoveFilePermissionDescription": "Grants users ability to remove files",
"CreateFolderPermission": "Create Folder",
"CreateFolderPermissionDescription": "Grants users ability to create folders",
"UpdateFolderPermission": "Update Folder",
"UpdateFolderPermissionDescription": "Grants users ability to update folders",
"RemoveFolderPermission": "Remove Folder",
"RemoveFolderPermissionDescription": "Grants users ability to remove folders"
}
}
14 changes: 13 additions & 1 deletion plugins/drive-assets/lang/it.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,18 @@
"Restore": "Ripristina",
"Root": "/",
"ForbidCreateDrivePermission": "Vieta creazione drive",
"ForbidCreateDrivePermissionDescription": "Vieta agli utenti di creare nuovi drive"
"ForbidCreateDrivePermissionDescription": "Vieta agli utenti di creare nuovi drive",
"CreateFilePermission": "Create File",
"CreateFilePermissionDescription": "Grants users ability to create files",
"UpdateFilePermission": "Update File",
"UpdateFilePermissionDescription": "Grants users ability to update files",
"RemoveFilePermission": "Remove File",
"RemoveFilePermissionDescription": "Grants users ability to remove files",
"CreateFolderPermission": "Create Folder",
"CreateFolderPermissionDescription": "Grants users ability to create folders",
"UpdateFolderPermission": "Update Folder",
"UpdateFolderPermissionDescription": "Grants users ability to update folders",
"RemoveFolderPermission": "Remove Folder",
"RemoveFolderPermissionDescription": "Grants users ability to remove folders"
}
}
14 changes: 13 additions & 1 deletion plugins/drive-assets/lang/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,18 @@
"Restore": "復元",
"Root": "/",
"ForbidCreateDrivePermission": "ドライブの作成禁止",
"ForbidCreateDrivePermissionDescription": "ユーザーが新しいドライブを作成することを禁止します"
"ForbidCreateDrivePermissionDescription": "ユーザーが新しいドライブを作成することを禁止します",
"CreateFilePermission": "Create File",
"CreateFilePermissionDescription": "Grants users ability to create files",
"UpdateFilePermission": "Update File",
"UpdateFilePermissionDescription": "Grants users ability to update files",
"RemoveFilePermission": "Remove File",
"RemoveFilePermissionDescription": "Grants users ability to remove files",
"CreateFolderPermission": "Create Folder",
"CreateFolderPermissionDescription": "Grants users ability to create folders",
"UpdateFolderPermission": "Update Folder",
"UpdateFolderPermissionDescription": "Grants users ability to update folders",
"RemoveFolderPermission": "Remove Folder",
"RemoveFolderPermissionDescription": "Grants users ability to remove folders"
}
}
Loading
Loading