Fix warnings
This commit is contained in:
@@ -99,14 +99,14 @@ func AddUser(username string, password []byte) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// AddAdmin register a user and set his role to admin
|
// AddAdmin register a user and set his role to admin
|
||||||
func AddAdmin(username string, password []byte) error {
|
/*func AddAdmin(username string, password []byte) error {
|
||||||
user := &User{
|
user := &User{
|
||||||
Username: username,
|
Username: username,
|
||||||
Password: password,
|
Password: password,
|
||||||
Role: adminRole,
|
Role: adminRole,
|
||||||
}
|
}
|
||||||
return db.Save(user).Error
|
return db.Save(user).Error
|
||||||
}
|
}*/
|
||||||
|
|
||||||
// GameInfoById return information of a game
|
// GameInfoById return information of a game
|
||||||
func GameInfoById(userId, gameId int) (*Game, error) {
|
func GameInfoById(userId, gameId int) (*Game, error) {
|
||||||
|
|||||||
@@ -3,20 +3,20 @@ package database
|
|||||||
import "time"
|
import "time"
|
||||||
|
|
||||||
type User struct {
|
type User struct {
|
||||||
ID int `json:"id"`
|
|
||||||
Username string `json:"username"`
|
Username string `json:"username"`
|
||||||
Role string `json:"role"`
|
Role string `json:"role"`
|
||||||
Password []byte `json:"-"`
|
Password []byte `json:"-"`
|
||||||
|
ID int `json:"id"`
|
||||||
IsAdmin bool `json:"is_admin" gorm:"-:all"`
|
IsAdmin bool `json:"is_admin" gorm:"-:all"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type Game struct {
|
type Game struct {
|
||||||
ID int `json:"id"`
|
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Revision int `json:"rev"`
|
|
||||||
PathStorage string `json:"-"`
|
PathStorage string `json:"-"`
|
||||||
Hash *string `json:"hash"`
|
ID int `json:"id"`
|
||||||
LastUpdate *time.Time `json:"last_update"`
|
Revision int `json:"rev"`
|
||||||
UserId int `json:"-"`
|
UserId int `json:"-"`
|
||||||
Available bool `json:"available"`
|
Available bool `json:"available"`
|
||||||
|
Hash *string `json:"hash"`
|
||||||
|
LastUpdate *time.Time `json:"last_update"`
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import (
|
|||||||
"github.com/go-chi/chi/v5"
|
"github.com/go-chi/chi/v5"
|
||||||
"io"
|
"io"
|
||||||
"log"
|
"log"
|
||||||
|
"mime/multipart"
|
||||||
"net/http"
|
"net/http"
|
||||||
"opensavecloudserver/config"
|
"opensavecloudserver/config"
|
||||||
"opensavecloudserver/database"
|
"opensavecloudserver/database"
|
||||||
@@ -165,8 +166,13 @@ func UploadSave(w http.ResponseWriter, r *http.Request) {
|
|||||||
log.Println(err)
|
log.Println(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
defer file.Close()
|
defer func(file multipart.File) {
|
||||||
err = upload.UploadSave(file, game)
|
err := file.Close()
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
}
|
||||||
|
}(file)
|
||||||
|
err = upload.ProcessFile(file, game)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
internalServerError(w, r)
|
internalServerError(w, r)
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
@@ -216,7 +222,12 @@ func Download(w http.ResponseWriter, r *http.Request) {
|
|||||||
log.Println(err)
|
log.Println(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
defer file.Close()
|
defer func(file *os.File) {
|
||||||
|
err := file.Close()
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
}
|
||||||
|
}(file)
|
||||||
_, err = io.Copy(w, file)
|
_, err = io.Copy(w, file)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
internalServerError(w, r)
|
internalServerError(w, r)
|
||||||
|
|||||||
@@ -44,6 +44,10 @@ func Serve() {
|
|||||||
secureRouter.Get("/information", UserInformation)
|
secureRouter.Get("/information", UserInformation)
|
||||||
secureRouter.Post("/passwd", ChangePassword)
|
secureRouter.Post("/passwd", ChangePassword)
|
||||||
})
|
})
|
||||||
|
r.Route("/admin", func(secureRouter chi.Router) {
|
||||||
|
secureRouter.Use(authMiddleware)
|
||||||
|
secureRouter.Use(adminMiddleware)
|
||||||
|
})
|
||||||
r.Route("/game", func(secureRouter chi.Router) {
|
r.Route("/game", func(secureRouter chi.Router) {
|
||||||
secureRouter.Use(authMiddleware)
|
secureRouter.Use(authMiddleware)
|
||||||
secureRouter.Post("/create", CreateGame)
|
secureRouter.Post("/create", CreateGame)
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"github.com/google/uuid"
|
"github.com/google/uuid"
|
||||||
"io"
|
"io"
|
||||||
|
"log"
|
||||||
"mime/multipart"
|
"mime/multipart"
|
||||||
"opensavecloudserver/config"
|
"opensavecloudserver/config"
|
||||||
"opensavecloudserver/database"
|
"opensavecloudserver/database"
|
||||||
@@ -43,16 +44,30 @@ func MoveFile(sourcePath, destPath string) error {
|
|||||||
}
|
}
|
||||||
outputFile, err := os.Create(destPath)
|
outputFile, err := os.Create(destPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
inputFile.Close()
|
err := inputFile.Close()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
return fmt.Errorf("couldn't open dest file: %s", err)
|
return fmt.Errorf("couldn't open dest file: %s", err)
|
||||||
}
|
}
|
||||||
defer outputFile.Close()
|
defer func(outputFile *os.File) {
|
||||||
|
err := outputFile.Close()
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
}
|
||||||
|
}(outputFile)
|
||||||
_, err = io.Copy(outputFile, inputFile)
|
_, err = io.Copy(outputFile, inputFile)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
inputFile.Close()
|
err := inputFile.Close()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
return fmt.Errorf("writing to output file failed: %s", err)
|
return fmt.Errorf("writing to output file failed: %s", err)
|
||||||
}
|
}
|
||||||
inputFile.Close()
|
err = inputFile.Close()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
// The copy was successful, so now delete the original file
|
// The copy was successful, so now delete the original file
|
||||||
err = os.Remove(sourcePath)
|
err = os.Remove(sourcePath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -92,7 +107,7 @@ func CheckUploadToken(uploadToken string) (int, bool) {
|
|||||||
return -1, false
|
return -1, false
|
||||||
}
|
}
|
||||||
|
|
||||||
func UploadSave(file multipart.File, game *database.Game) error {
|
func ProcessFile(file multipart.File, game *database.Game) error {
|
||||||
filePath := path.Join(config.Path().Cache, strconv.Itoa(game.UserId))
|
filePath := path.Join(config.Path().Cache, strconv.Itoa(game.UserId))
|
||||||
if _, err := os.Stat(filePath); err != nil {
|
if _, err := os.Stat(filePath); err != nil {
|
||||||
err = os.Mkdir(filePath, 0766)
|
err = os.Mkdir(filePath, 0766)
|
||||||
@@ -105,7 +120,12 @@ func UploadSave(file multipart.File, game *database.Game) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
defer f.Close()
|
defer func(f *os.File) {
|
||||||
|
err := f.Close()
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
}
|
||||||
|
}(f)
|
||||||
_, err = io.Copy(f, file)
|
_, err = io.Copy(f, file)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|||||||
Reference in New Issue
Block a user