filemanager: implement chown action
This commit is contained in:
Generated
+4
-4
@@ -10,7 +10,7 @@
|
||||
"dependencies": {
|
||||
"combokeys": "^3.0.1",
|
||||
"filesize": "^10.0.7",
|
||||
"pankow": "^0.0.8",
|
||||
"pankow": "^0.0.9",
|
||||
"primeicons": "^6.0.1",
|
||||
"primevue": "^3.26.1",
|
||||
"superagent": "^8.0.9",
|
||||
@@ -850,9 +850,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/pankow": {
|
||||
"version": "0.0.8",
|
||||
"resolved": "https://registry.npmjs.org/pankow/-/pankow-0.0.8.tgz",
|
||||
"integrity": "sha512-tFCT48NeTAZTPHbBjvXQgNP9oGEo12ENmA0ZspajK4tLlX93xykbUzAdO7MrauuixszGrQrVAb5Eb6yfmV57zQ==",
|
||||
"version": "0.0.9",
|
||||
"resolved": "https://registry.npmjs.org/pankow/-/pankow-0.0.9.tgz",
|
||||
"integrity": "sha512-/tk9DJuHhiOwR2COcXWIEi7CQKaKskDNyPJzQb51AhjayHAZm3qWX1lbkc1h+gCbiW/1EQlNpP3HAkoiaz6gGA==",
|
||||
"dependencies": {
|
||||
"filesize": "^10.0.7",
|
||||
"monaco-editor": "^0.37.1",
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
"dependencies": {
|
||||
"combokeys": "^3.0.1",
|
||||
"filesize": "^10.0.7",
|
||||
"pankow": "^0.0.8",
|
||||
"pankow": "^0.0.9",
|
||||
"primeicons": "^6.0.1",
|
||||
"primevue": "^3.26.1",
|
||||
"superagent": "^8.0.9",
|
||||
|
||||
@@ -69,6 +69,11 @@ export function createDirectoryModel(origin, accessToken, api) {
|
||||
.send({ action: 'rename', newFilePath: sanitize(toFilePath) })
|
||||
.query({ access_token: accessToken });
|
||||
},
|
||||
async chown(filePath, uid) {
|
||||
await superagent.put(`${origin}/api/v1/${api}/files/${filePath}`)
|
||||
.send({ action: 'chown', uid: uid, recursive: true })
|
||||
.query({ access_token: accessToken });
|
||||
},
|
||||
async save(filePath, content) {
|
||||
const file = new File([content], 'file');
|
||||
await superagent.post(`${origin}/api/v1/${api}/files/${filePath}`)
|
||||
|
||||
@@ -51,9 +51,11 @@
|
||||
@item-activated="onItemActivated"
|
||||
:delete-handler="deleteHandler"
|
||||
:rename-handler="renameHandler"
|
||||
:change-owner-handler="changeOwnerHandler"
|
||||
:copy-handler="copyHandler"
|
||||
:cut-handler="cutHandler"
|
||||
:items="items"
|
||||
:owners-model="ownersModel"
|
||||
/>
|
||||
</div>
|
||||
<div class="main-view-col" style="max-width: 300px;">
|
||||
@@ -136,6 +138,19 @@ export default {
|
||||
busy: false,
|
||||
name: ''
|
||||
},
|
||||
ownersModel: [{
|
||||
uid: 0,
|
||||
label: 'root'
|
||||
}, {
|
||||
uid: 33,
|
||||
label: 'www-data'
|
||||
}, {
|
||||
uid: 1000,
|
||||
label: 'cloudron'
|
||||
}, {
|
||||
uid: 1001,
|
||||
label: 'git'
|
||||
}],
|
||||
// contextMenuModel will have activeItem attached if any command() is called
|
||||
createMenuModel: [{
|
||||
label: 'File',
|
||||
@@ -234,6 +249,15 @@ export default {
|
||||
await this.directoryModel.rename(buildFilePath(this.cwd, file.name), sanitize(this.cwd + '/' + newName));
|
||||
await this.loadCwd();
|
||||
},
|
||||
async changeOwnerHandler(files, newOwnerUid) {
|
||||
if (!files) return;
|
||||
|
||||
for (let i in files) {
|
||||
await this.directoryModel.chown(buildFilePath(this.cwd, files[i].name), newOwnerUid);
|
||||
}
|
||||
|
||||
await this.loadCwd();
|
||||
},
|
||||
async copyHandler(files) {
|
||||
if (!files) return;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user