mirror of
https://github.com/drakkan/sftpgo.git
synced 2025-12-08 07:10:56 +03:00
refactor: add an enum for filesystem providers
Signed-off-by: Mark Sagi-Kazar <mark.sagikazar@gmail.com>
This commit is contained in:
committed by
Nicola Murino
parent
c992072286
commit
5e2db77ef9
@@ -118,7 +118,7 @@ func updateUser(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
currentPermissions := user.Permissions
|
||||
currentS3AccessSecret := ""
|
||||
if user.FsConfig.Provider == 1 {
|
||||
if user.FsConfig.Provider == dataprovider.S3FilesystemProvider {
|
||||
currentS3AccessSecret = user.FsConfig.S3Config.AccessSecret
|
||||
}
|
||||
user.Permissions = make(map[string][]string)
|
||||
@@ -132,7 +132,7 @@ func updateUser(w http.ResponseWriter, r *http.Request) {
|
||||
user.Permissions = currentPermissions
|
||||
}
|
||||
// we use the new access secret if different from the old one and not empty
|
||||
if user.FsConfig.Provider == 1 {
|
||||
if user.FsConfig.Provider == dataprovider.S3FilesystemProvider {
|
||||
if utils.RemoveDecryptionKey(currentS3AccessSecret) == user.FsConfig.S3Config.AccessSecret ||
|
||||
(len(user.FsConfig.S3Config.AccessSecret) == 0 && len(user.FsConfig.S3Config.AccessKey) > 0) {
|
||||
user.FsConfig.S3Config.AccessSecret = currentS3AccessSecret
|
||||
|
||||
@@ -385,7 +385,7 @@ func TestAddUserInvalidFilters(t *testing.T) {
|
||||
|
||||
func TestAddUserInvalidFsConfig(t *testing.T) {
|
||||
u := getTestUser()
|
||||
u.FsConfig.Provider = 1
|
||||
u.FsConfig.Provider = dataprovider.S3FilesystemProvider
|
||||
u.FsConfig.S3Config.Bucket = ""
|
||||
_, _, err := httpd.AddUser(u, http.StatusBadRequest)
|
||||
assert.NoError(t, err)
|
||||
@@ -411,7 +411,7 @@ func TestAddUserInvalidFsConfig(t *testing.T) {
|
||||
_, _, err = httpd.AddUser(u, http.StatusBadRequest)
|
||||
assert.NoError(t, err)
|
||||
u = getTestUser()
|
||||
u.FsConfig.Provider = 2
|
||||
u.FsConfig.Provider = dataprovider.GCSFilesystemProvider
|
||||
u.FsConfig.GCSConfig.Bucket = ""
|
||||
_, _, err = httpd.AddUser(u, http.StatusBadRequest)
|
||||
assert.NoError(t, err)
|
||||
@@ -921,7 +921,7 @@ func TestUserFolderMapping(t *testing.T) {
|
||||
func TestUserS3Config(t *testing.T) {
|
||||
user, _, err := httpd.AddUser(getTestUser(), http.StatusOK)
|
||||
assert.NoError(t, err)
|
||||
user.FsConfig.Provider = 1
|
||||
user.FsConfig.Provider = dataprovider.S3FilesystemProvider
|
||||
user.FsConfig.S3Config.Bucket = "test" //nolint:goconst
|
||||
user.FsConfig.S3Config.Region = "us-east-1" //nolint:goconst
|
||||
user.FsConfig.S3Config.AccessKey = "Server-Access-Key"
|
||||
@@ -938,7 +938,7 @@ func TestUserS3Config(t *testing.T) {
|
||||
user.FsConfig.S3Config.AccessSecret = secret
|
||||
user, _, err = httpd.AddUser(user, http.StatusOK)
|
||||
assert.NoError(t, err)
|
||||
user.FsConfig.Provider = 1
|
||||
user.FsConfig.Provider = dataprovider.S3FilesystemProvider
|
||||
user.FsConfig.S3Config.Bucket = "test-bucket"
|
||||
user.FsConfig.S3Config.Region = "us-east-1" //nolint:goconst
|
||||
user.FsConfig.S3Config.AccessKey = "Server-Access-Key1"
|
||||
@@ -947,7 +947,7 @@ func TestUserS3Config(t *testing.T) {
|
||||
user.FsConfig.S3Config.UploadConcurrency = 5
|
||||
user, _, err = httpd.UpdateUser(user, http.StatusOK, "")
|
||||
assert.NoError(t, err)
|
||||
user.FsConfig.Provider = 0
|
||||
user.FsConfig.Provider = dataprovider.LocalFilesystemProvider
|
||||
user.FsConfig.S3Config.Bucket = ""
|
||||
user.FsConfig.S3Config.Region = ""
|
||||
user.FsConfig.S3Config.AccessKey = ""
|
||||
@@ -959,7 +959,7 @@ func TestUserS3Config(t *testing.T) {
|
||||
user, _, err = httpd.UpdateUser(user, http.StatusOK, "")
|
||||
assert.NoError(t, err)
|
||||
// test user without access key and access secret (shared config state)
|
||||
user.FsConfig.Provider = 1
|
||||
user.FsConfig.Provider = dataprovider.S3FilesystemProvider
|
||||
user.FsConfig.S3Config.Bucket = "testbucket"
|
||||
user.FsConfig.S3Config.Region = "us-east-1"
|
||||
user.FsConfig.S3Config.AccessKey = ""
|
||||
@@ -981,7 +981,7 @@ func TestUserGCSConfig(t *testing.T) {
|
||||
assert.NoError(t, err)
|
||||
err = os.MkdirAll(credentialsPath, 0700)
|
||||
assert.NoError(t, err)
|
||||
user.FsConfig.Provider = 2
|
||||
user.FsConfig.Provider = dataprovider.GCSFilesystemProvider
|
||||
user.FsConfig.GCSConfig.Bucket = "test"
|
||||
user.FsConfig.GCSConfig.Credentials = base64.StdEncoding.EncodeToString([]byte("fake credentials"))
|
||||
user, _, err = httpd.UpdateUser(user, http.StatusOK, "")
|
||||
@@ -1001,7 +1001,7 @@ func TestUserGCSConfig(t *testing.T) {
|
||||
user.FsConfig.GCSConfig.AutomaticCredentials = 1
|
||||
user, _, err = httpd.UpdateUser(user, http.StatusOK, "")
|
||||
assert.NoError(t, err)
|
||||
user.FsConfig.Provider = 1
|
||||
user.FsConfig.Provider = dataprovider.S3FilesystemProvider
|
||||
user.FsConfig.S3Config.Bucket = "test1"
|
||||
user.FsConfig.S3Config.Region = "us-east-1"
|
||||
user.FsConfig.S3Config.AccessKey = "Server-Access-Key1"
|
||||
@@ -1010,7 +1010,7 @@ func TestUserGCSConfig(t *testing.T) {
|
||||
user.FsConfig.S3Config.KeyPrefix = "somedir/subdir"
|
||||
user, _, err = httpd.UpdateUser(user, http.StatusOK, "")
|
||||
assert.NoError(t, err)
|
||||
user.FsConfig.Provider = 2
|
||||
user.FsConfig.Provider = dataprovider.GCSFilesystemProvider
|
||||
user.FsConfig.GCSConfig.Bucket = "test1"
|
||||
user.FsConfig.GCSConfig.Credentials = base64.StdEncoding.EncodeToString([]byte("fake credentials"))
|
||||
user, _, err = httpd.UpdateUser(user, http.StatusOK, "")
|
||||
@@ -2558,7 +2558,7 @@ func TestWebUserS3Mock(t *testing.T) {
|
||||
checkResponseCode(t, http.StatusOK, rr.Code)
|
||||
err := render.DecodeJSON(rr.Body, &user)
|
||||
assert.NoError(t, err)
|
||||
user.FsConfig.Provider = 1
|
||||
user.FsConfig.Provider = dataprovider.S3FilesystemProvider
|
||||
user.FsConfig.S3Config.Bucket = "test"
|
||||
user.FsConfig.S3Config.Region = "eu-west-1"
|
||||
user.FsConfig.S3Config.AccessKey = "access-key"
|
||||
@@ -2655,7 +2655,7 @@ func TestWebUserGCSMock(t *testing.T) {
|
||||
credentialsFilePath := filepath.Join(os.TempDir(), "gcs.json")
|
||||
err = createTestFile(credentialsFilePath, 0)
|
||||
assert.NoError(t, err)
|
||||
user.FsConfig.Provider = 2
|
||||
user.FsConfig.Provider = dataprovider.GCSFilesystemProvider
|
||||
user.FsConfig.GCSConfig.Bucket = "test"
|
||||
user.FsConfig.GCSConfig.KeyPrefix = "somedir/subdir/"
|
||||
user.FsConfig.GCSConfig.StorageClass = "standard"
|
||||
|
||||
@@ -116,10 +116,10 @@ func TestCheckUser(t *testing.T) {
|
||||
assert.Error(t, err)
|
||||
expected.Permissions = make(map[string][]string)
|
||||
actual.Permissions = make(map[string][]string)
|
||||
actual.FsConfig.Provider = 1
|
||||
actual.FsConfig.Provider = dataprovider.S3FilesystemProvider
|
||||
err = checkUser(expected, actual)
|
||||
assert.Error(t, err)
|
||||
actual.FsConfig.Provider = 0
|
||||
actual.FsConfig.Provider = dataprovider.LocalFilesystemProvider
|
||||
expected.VirtualFolders = append(expected.VirtualFolders, vfs.VirtualFolder{
|
||||
BaseVirtualFolder: vfs.BaseVirtualFolder{
|
||||
MappedPath: os.TempDir(),
|
||||
@@ -277,10 +277,10 @@ func TestCompareUserFields(t *testing.T) {
|
||||
func TestCompareUserFsConfig(t *testing.T) {
|
||||
expected := &dataprovider.User{}
|
||||
actual := &dataprovider.User{}
|
||||
expected.FsConfig.Provider = 1
|
||||
expected.FsConfig.Provider = dataprovider.S3FilesystemProvider
|
||||
err := compareUserFsConfig(expected, actual)
|
||||
assert.Error(t, err)
|
||||
expected.FsConfig.Provider = 0
|
||||
expected.FsConfig.Provider = dataprovider.LocalFilesystemProvider
|
||||
expected.FsConfig.S3Config.Bucket = "bucket"
|
||||
err = compareUserFsConfig(expected, actual)
|
||||
assert.Error(t, err)
|
||||
@@ -545,7 +545,7 @@ func TestQuotaScanInvalidFs(t *testing.T) {
|
||||
Username: "test",
|
||||
HomeDir: os.TempDir(),
|
||||
FsConfig: dataprovider.Filesystem{
|
||||
Provider: 1,
|
||||
Provider: dataprovider.S3FilesystemProvider,
|
||||
},
|
||||
}
|
||||
common.QuotaScans.AddUserQuotaScan(user.Username)
|
||||
|
||||
@@ -386,10 +386,10 @@ func getFsConfigFromUserPostFields(r *http.Request) (dataprovider.Filesystem, er
|
||||
var fs dataprovider.Filesystem
|
||||
provider, err := strconv.Atoi(r.Form.Get("fs_provider"))
|
||||
if err != nil {
|
||||
provider = 0
|
||||
provider = int(dataprovider.LocalFilesystemProvider)
|
||||
}
|
||||
fs.Provider = provider
|
||||
if fs.Provider == 1 {
|
||||
fs.Provider = dataprovider.FilesystemProvider(provider)
|
||||
if fs.Provider == dataprovider.S3FilesystemProvider {
|
||||
fs.S3Config.Bucket = r.Form.Get("s3_bucket")
|
||||
fs.S3Config.Region = r.Form.Get("s3_region")
|
||||
fs.S3Config.AccessKey = r.Form.Get("s3_access_key")
|
||||
@@ -405,7 +405,7 @@ func getFsConfigFromUserPostFields(r *http.Request) (dataprovider.Filesystem, er
|
||||
if err != nil {
|
||||
return fs, err
|
||||
}
|
||||
} else if fs.Provider == 2 {
|
||||
} else if fs.Provider == dataprovider.GCSFilesystemProvider {
|
||||
fs.GCSConfig.Bucket = r.Form.Get("gcs_bucket")
|
||||
fs.GCSConfig.StorageClass = r.Form.Get("gcs_storage_class")
|
||||
fs.GCSConfig.KeyPrefix = r.Form.Get("gcs_key_prefix")
|
||||
|
||||
Reference in New Issue
Block a user