mirror of
https://github.com/filegator/filegator.git
synced 2025-08-11 08:24:20 +02:00
Added chmod perm, modal to change, api with local/ftp/sftp (#399)
Read a fill current permissions for local driver Finished permissions for ftp driver, read and change Read permissions for sftp adapter Created FilegatorFtp for a cleaner permissions integration Implemented recursive chmod options for files/folders Modified tests to cover permissions Lint frontend permissions component
This commit is contained in:
@@ -135,6 +135,9 @@
|
||||
<b-dropdown-item v-if="can(['write', 'zip']) && ! isArchive(props.row)" aria-role="listitem" @click="zip($event, props.row)">
|
||||
<b-icon icon="file-archive" size="is-small" /> {{ lang('Zip') }}
|
||||
</b-dropdown-item>
|
||||
<b-dropdown-item v-if="can(['write', 'chmod']) && props.row.permissions !== -1" aria-role="listitem" @click="chmod($event, props.row)">
|
||||
<b-icon icon="lock" size="is-small" /> {{ lang('Permissions') }} ({{ props.row.permissions }})
|
||||
</b-dropdown-item>
|
||||
<b-dropdown-item v-if="can('write')" aria-role="listitem" @click="remove($event, props.row)">
|
||||
<b-icon icon="trash-alt" size="is-small" /> {{ lang('Delete') }}
|
||||
</b-dropdown-item>
|
||||
@@ -164,6 +167,7 @@
|
||||
import Vue from 'vue'
|
||||
import Menu from './partials/Menu'
|
||||
import Tree from './partials/Tree'
|
||||
import Permissions from './partials/Permissions'
|
||||
import Editor from './partials/Editor'
|
||||
import Gallery from './partials/Gallery'
|
||||
import Search from './partials/Search'
|
||||
@@ -491,6 +495,37 @@ export default {
|
||||
}
|
||||
})
|
||||
},
|
||||
chmod(event, item) {
|
||||
this.$modal.open({
|
||||
parent: this,
|
||||
hasModalCard: true,
|
||||
component: Permissions,
|
||||
props: {
|
||||
name: item.name,
|
||||
permissions: item.permissions,
|
||||
isDir: item.type == 'dir',
|
||||
},
|
||||
events: {
|
||||
saved: (permissions, recursive = null) => {
|
||||
this.isLoading = true
|
||||
api.chmodItems({
|
||||
items: item ? [item] : this.getSelected(),
|
||||
permissions: permissions,
|
||||
recursive: recursive,
|
||||
})
|
||||
.then(() => {
|
||||
this.isLoading = false
|
||||
this.loadFiles()
|
||||
})
|
||||
.catch(error => {
|
||||
this.isLoading = false
|
||||
this.handleError(error)
|
||||
})
|
||||
this.checked = []
|
||||
}
|
||||
},
|
||||
})
|
||||
},
|
||||
rename(event, item) {
|
||||
this.$dialog.prompt({
|
||||
message: this.lang('New name'),
|
||||
|
Reference in New Issue
Block a user