70 lines
1.7 KiB
Go
70 lines
1.7 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"path"
|
|
|
|
"github.com/jinzhu/gorm"
|
|
_ "github.com/jinzhu/gorm/dialects/postgres"
|
|
|
|
log "dev.sum7.de/sum7/warehost/lib/log"
|
|
libpassword "dev.sum7.de/sum7/warehost/lib/password"
|
|
system "dev.sum7.de/sum7/warehost/system"
|
|
)
|
|
|
|
var (
|
|
configFile string
|
|
config *Config
|
|
dbconnection *gorm.DB
|
|
)
|
|
|
|
func main() {
|
|
var err error
|
|
configFile = os.Getenv("CONFIGFILE")
|
|
if len(configFile) > 0 {
|
|
configFile = "config.yml"
|
|
}
|
|
|
|
config = ReadConfigFile(configFile)
|
|
log.NewSilenceLogger(config.Log.Path)
|
|
|
|
// Main Databaseconnection
|
|
dbconnection, err = gorm.Open("postgres", config.Database)
|
|
if err != nil {
|
|
log.Log.Fatal("database connection: ", err)
|
|
}
|
|
defer dbconnection.Close()
|
|
dbconnection.SingularTable(true)
|
|
dbconnection.LogMode(config.DatabaseDebug)
|
|
|
|
username := os.Getenv("AUTHD_ACCOUNT")
|
|
password := os.Getenv("AUTHD_PASSWORD")
|
|
logger := log.Log.WithField("user", username)
|
|
login := system.Login{Username: username}
|
|
dbconnection.Where("mail = ?", username).First(&login)
|
|
if login.ID <= 0 {
|
|
logger.Warn("user not found")
|
|
fmt.Println("auth_ok:-1")
|
|
} else if login.Active {
|
|
output, _ := libpassword.Validate(login.Password, password)
|
|
if output {
|
|
logger.Info("logged in")
|
|
fmt.Println("auth_ok:-1")
|
|
fmt.Printf("uid:%s\n", config.Userid)
|
|
fmt.Printf("gid:%s\n", config.Groupid)
|
|
fmt.Printf("dir:%s\n", path.Join(config.Path, fmt.Sprintf("%d", login.ID)))
|
|
if len(config.Quote) > 0 && !login.Superadmin {
|
|
fmt.Printf("user_quote_size:%s\n", config.Quote)
|
|
}
|
|
} else {
|
|
logger.Warn("wrong password")
|
|
fmt.Println("auth_ok:-1")
|
|
}
|
|
} else {
|
|
logger.Warn("not active")
|
|
fmt.Println("auth_ok:-1")
|
|
}
|
|
fmt.Println("end")
|
|
}
|