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
|
||||
func AddAdmin(username string, password []byte) error {
|
||||
/*func AddAdmin(username string, password []byte) error {
|
||||
user := &User{
|
||||
Username: username,
|
||||
Password: password,
|
||||
Role: adminRole,
|
||||
}
|
||||
return db.Save(user).Error
|
||||
}
|
||||
}*/
|
||||
|
||||
// GameInfoById return information of a game
|
||||
func GameInfoById(userId, gameId int) (*Game, error) {
|
||||
|
||||
@@ -3,20 +3,20 @@ package database
|
||||
import "time"
|
||||
|
||||
type User struct {
|
||||
ID int `json:"id"`
|
||||
Username string `json:"username"`
|
||||
Role string `json:"role"`
|
||||
Password []byte `json:"-"`
|
||||
ID int `json:"id"`
|
||||
IsAdmin bool `json:"is_admin" gorm:"-:all"`
|
||||
}
|
||||
|
||||
type Game struct {
|
||||
ID int `json:"id"`
|
||||
Name string `json:"name"`
|
||||
Revision int `json:"rev"`
|
||||
PathStorage string `json:"-"`
|
||||
Hash *string `json:"hash"`
|
||||
LastUpdate *time.Time `json:"last_update"`
|
||||
ID int `json:"id"`
|
||||
Revision int `json:"rev"`
|
||||
UserId int `json:"-"`
|
||||
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"
|
||||
"io"
|
||||
"log"
|
||||
"mime/multipart"
|
||||
"net/http"
|
||||
"opensavecloudserver/config"
|
||||
"opensavecloudserver/database"
|
||||
@@ -165,8 +166,13 @@ func UploadSave(w http.ResponseWriter, r *http.Request) {
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
defer file.Close()
|
||||
err = upload.UploadSave(file, game)
|
||||
defer func(file multipart.File) {
|
||||
err := file.Close()
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
}(file)
|
||||
err = upload.ProcessFile(file, game)
|
||||
if err != nil {
|
||||
internalServerError(w, r)
|
||||
log.Println(err)
|
||||
@@ -216,7 +222,12 @@ func Download(w http.ResponseWriter, r *http.Request) {
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
defer file.Close()
|
||||
defer func(file *os.File) {
|
||||
err := file.Close()
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
}
|
||||
}(file)
|
||||
_, err = io.Copy(w, file)
|
||||
if err != nil {
|
||||
internalServerError(w, r)
|
||||
|
||||
@@ -44,6 +44,10 @@ func Serve() {
|
||||
secureRouter.Get("/information", UserInformation)
|
||||
secureRouter.Post("/passwd", ChangePassword)
|
||||
})
|
||||
r.Route("/admin", func(secureRouter chi.Router) {
|
||||
secureRouter.Use(authMiddleware)
|
||||
secureRouter.Use(adminMiddleware)
|
||||
})
|
||||
r.Route("/game", func(secureRouter chi.Router) {
|
||||
secureRouter.Use(authMiddleware)
|
||||
secureRouter.Post("/create", CreateGame)
|
||||
|
||||
@@ -5,6 +5,7 @@ import (
|
||||
"fmt"
|
||||
"github.com/google/uuid"
|
||||
"io"
|
||||
"log"
|
||||
"mime/multipart"
|
||||
"opensavecloudserver/config"
|
||||
"opensavecloudserver/database"
|
||||
@@ -43,16 +44,30 @@ func MoveFile(sourcePath, destPath string) error {
|
||||
}
|
||||
outputFile, err := os.Create(destPath)
|
||||
if err != nil {
|
||||
inputFile.Close()
|
||||
err := inputFile.Close()
|
||||
if err != nil {
|
||||
return 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)
|
||||
if err != nil {
|
||||
inputFile.Close()
|
||||
err := inputFile.Close()
|
||||
if err != nil {
|
||||
return 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
|
||||
err = os.Remove(sourcePath)
|
||||
if err != nil {
|
||||
@@ -92,7 +107,7 @@ func CheckUploadToken(uploadToken string) (int, bool) {
|
||||
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))
|
||||
if _, err := os.Stat(filePath); err != nil {
|
||||
err = os.Mkdir(filePath, 0766)
|
||||
@@ -105,7 +120,12 @@ func UploadSave(file multipart.File, game *database.Game) error {
|
||||
if err != nil {
|
||||
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)
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
Reference in New Issue
Block a user