12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package server
- import (
- "encoding/json"
- "fmt"
- "log"
- "os"
- "os/user"
- "syno-common/server/sso"
- "syno-common/server/utils"
- )
- func Auth() (map[string]interface{}, error) {
- // Todo:
- // fix-up error handling with correct http responses (add --debug flag?/Synology's notifications?)
- // worry about csrf
- //dev = flag.Bool("dev", false, "Turns Authentication checks off")
- //flag.Parse()
- var logF *os.File
- var err error
- curDir := utils.GetCurDir()
- logF, err = os.OpenFile(fmt.Sprintf("%v/commontools.log", curDir), os.O_CREATE|os.O_APPEND|os.O_RDWR, os.ModePerm)
- if err == nil {
- defer func() {
- logF.Close()
- }()
- log.SetOutput(logF)
- }
- u, _ := user.Current()
- if u != nil {
- log.Println("user", u)
- }
- synoResp := sso.SynoAuth()
- if !synoResp.Ok {
- synoResp.PrintNoData()
- os.Exit(0)
- }
- userData := synoResp.Data
- resp := sso.LoginByAccount(userData.User)
- if !resp.Ok {
- r := sso.UnauthorisedResp()
- r.PrintNoData()
- os.Exit(0)
- }
- synoResp.PrintNoData()
- data := resp.Data
- jsonData, _ := json.Marshal(data)
- fmt.Print(string(jsonData))
- return data, nil
- }
|