mirror of
https://github.com/drakkan/sftpgo.git
synced 2025-12-07 14:50:55 +03:00
@@ -8,6 +8,7 @@ import (
|
||||
"path/filepath"
|
||||
"time"
|
||||
|
||||
"github.com/drakkan/sftpgo/logger"
|
||||
"github.com/drakkan/sftpgo/utils"
|
||||
bolt "go.etcd.io/bbolt"
|
||||
)
|
||||
@@ -24,7 +25,7 @@ type BoltProvider struct {
|
||||
|
||||
func initializeBoltProvider(basePath string) error {
|
||||
var err error
|
||||
provider = BoltProvider{}
|
||||
logSender = BoltDataProviderName
|
||||
dbPath := config.Name
|
||||
if !filepath.IsAbs(dbPath) {
|
||||
dbPath = filepath.Join(basePath, dbPath)
|
||||
@@ -34,13 +35,13 @@ func initializeBoltProvider(basePath string) error {
|
||||
FreelistType: bolt.FreelistArrayType,
|
||||
Timeout: 5 * time.Second})
|
||||
if err == nil {
|
||||
provider.log(Debug, "bolt key store handle created")
|
||||
providerLog(logger.LevelDebug, "bolt key store handle created")
|
||||
err = dbHandle.Update(func(tx *bolt.Tx) error {
|
||||
_, e := tx.CreateBucketIfNotExists(usersBucket)
|
||||
return e
|
||||
})
|
||||
if err != nil {
|
||||
provider.log(Warn, "error creating users bucket: %v", err)
|
||||
providerLog(logger.LevelWarn, "error creating users bucket: %v", err)
|
||||
return err
|
||||
}
|
||||
err = dbHandle.Update(func(tx *bolt.Tx) error {
|
||||
@@ -48,12 +49,12 @@ func initializeBoltProvider(basePath string) error {
|
||||
return e
|
||||
})
|
||||
if err != nil {
|
||||
provider.log(Warn, "error creating username idx bucket: %v", err)
|
||||
providerLog(logger.LevelWarn, "error creating username idx bucket: %v", err)
|
||||
return err
|
||||
}
|
||||
provider = BoltProvider{dbHandle: dbHandle}
|
||||
} else {
|
||||
provider.log(Warn, "error creating bolt key/value store handler: %v", err)
|
||||
providerLog(logger.LevelWarn, "error creating bolt key/value store handler: %v", err)
|
||||
}
|
||||
return err
|
||||
}
|
||||
@@ -65,7 +66,7 @@ func (p BoltProvider) validateUserAndPass(username string, password string) (Use
|
||||
}
|
||||
user, err := p.userExists(username)
|
||||
if err != nil {
|
||||
p.log(Warn, "error authenticating user: %v, error: %v", username, err)
|
||||
providerLog(logger.LevelWarn, "error authenticating user: %v, error: %v", username, err)
|
||||
return user, err
|
||||
}
|
||||
return checkUserAndPass(user, password)
|
||||
@@ -78,7 +79,7 @@ func (p BoltProvider) validateUserAndPubKey(username string, pubKey string) (Use
|
||||
}
|
||||
user, err := p.userExists(username)
|
||||
if err != nil {
|
||||
p.log(Warn, "error authenticating user: %v, error: %v", username, err)
|
||||
providerLog(logger.LevelWarn, "error authenticating user: %v, error: %v", username, err)
|
||||
return user, "", err
|
||||
}
|
||||
return checkUserAndPubKey(user, pubKey)
|
||||
@@ -140,7 +141,7 @@ func (p BoltProvider) updateQuota(username string, filesAdd int, sizeAdd int64,
|
||||
func (p BoltProvider) getUsedQuota(username string) (int, int64, error) {
|
||||
user, err := p.userExists(username)
|
||||
if err != nil {
|
||||
p.log(Warn, "unable to get quota for user %v error: %v", username, err)
|
||||
providerLog(logger.LevelWarn, "unable to get quota for user %v error: %v", username, err)
|
||||
return 0, 0, err
|
||||
}
|
||||
return user.UsedQuotaFiles, user.UsedQuotaSize, err
|
||||
@@ -313,11 +314,3 @@ func getBuckets(tx *bolt.Tx) (*bolt.Bucket, *bolt.Bucket, error) {
|
||||
}
|
||||
return bucket, idxBucket, err
|
||||
}
|
||||
|
||||
func (p BoltProvider) log(level string, format string, v ...interface{}) {
|
||||
sqlCommonLog(level, p.providerName(), format, v...)
|
||||
}
|
||||
|
||||
func (p BoltProvider) providerName() string {
|
||||
return BoltDataProviderName
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user