mirror of
https://github.com/drakkan/sftpgo.git
synced 2025-12-07 14:50:55 +03:00
system commands: recursively verify required permissions
If any permission is missing at any level, return a "Permission Denied" error Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
This commit is contained in:
@@ -1412,6 +1412,19 @@ func TestUserPerms(t *testing.T) {
|
||||
u.Permissions["/"] = []string{dataprovider.PermDeleteDirs, dataprovider.PermRenameFiles, dataprovider.PermRenameDirs}
|
||||
assert.False(t, u.HasPermsDeleteAll("/"))
|
||||
assert.True(t, u.HasPermsRenameAll("/"))
|
||||
|
||||
toCheck := []string{dataprovider.PermDownload, dataprovider.PermUpload, dataprovider.PermCreateDirs, dataprovider.PermListItems,
|
||||
dataprovider.PermOverwrite, dataprovider.PermDelete}
|
||||
u.Permissions = make(map[string][]string)
|
||||
u.Permissions["/"] = []string{dataprovider.PermListItems}
|
||||
u.Permissions["/example-dir/bar"] = []string{dataprovider.PermListItems}
|
||||
u.Permissions["/example-dir"] = toCheck
|
||||
assert.True(t, u.HasPerms(toCheck, "/example-dir"))
|
||||
assert.False(t, u.HasRecursivePerms(toCheck, "/example-dir"))
|
||||
delete(u.Permissions, "/example-dir/bar")
|
||||
assert.True(t, u.HasRecursivePerms(toCheck, "/example-dir"))
|
||||
u.Permissions["/example-dirbar"] = []string{dataprovider.PermListItems}
|
||||
assert.True(t, u.HasRecursivePerms(toCheck, "/example-dir"))
|
||||
}
|
||||
|
||||
func TestGetTLSVersion(t *testing.T) {
|
||||
|
||||
Reference in New Issue
Block a user