mirror of
https://github.com/eyebluecn/tank.git
synced 2024-04-21 12:32:16 +00:00
fix: fix the share space uuid.
This commit is contained in:
@@ -70,38 +70,19 @@ func (this *ShareController) RegisterRoutes() map[string]func(writer http.Respon
|
||||
|
||||
func (this *ShareController) Create(writer http.ResponseWriter, request *http.Request) *result.WebResult {
|
||||
|
||||
matterUuids := request.FormValue("matterUuids")
|
||||
expireInfinityStr := request.FormValue("expireInfinity")
|
||||
expireTimeStr := request.FormValue("expireTime")
|
||||
|
||||
if matterUuids == "" {
|
||||
panic(result.BadRequest("matterUuids cannot be null"))
|
||||
}
|
||||
|
||||
var expireTime time.Time
|
||||
expireInfinity := false
|
||||
if expireInfinityStr == TRUE {
|
||||
expireInfinity = true
|
||||
expireTime = time.Now()
|
||||
} else {
|
||||
|
||||
if expireTimeStr == "" {
|
||||
panic(result.BadRequest("time format error"))
|
||||
} else {
|
||||
expireTime = util.ConvertDateTimeStringToTime(expireTimeStr)
|
||||
}
|
||||
uuidArray := util.ExtractRequestArray(request, "matterUuids")
|
||||
expireInfinity := util.ExtractRequestBool(request, "expireInfinity")
|
||||
spaceUuid := util.ExtractRequestString(request, "spaceUuid")
|
||||
|
||||
var expireTime = time.Now()
|
||||
if !expireInfinity {
|
||||
expireTime = util.ExtractRequestTime(request, "expireTime")
|
||||
if expireTime.Before(time.Now()) {
|
||||
panic(result.BadRequest("expire time cannot before now"))
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
uuidArray := strings.Split(matterUuids, ",")
|
||||
|
||||
if len(uuidArray) == 0 {
|
||||
panic(result.BadRequest("share at least one file"))
|
||||
} else if len(uuidArray) > SHARE_MAX_NUM {
|
||||
if len(uuidArray) > SHARE_MAX_NUM {
|
||||
panic(result.BadRequestI18n(request, i18n.ShareNumExceedLimit, len(uuidArray), SHARE_MAX_NUM))
|
||||
}
|
||||
|
||||
@@ -150,6 +131,7 @@ func (this *ShareController) Create(writer http.ResponseWriter, request *http.Re
|
||||
Code: util.RandomString4(),
|
||||
ExpireInfinity: expireInfinity,
|
||||
ExpireTime: expireTime,
|
||||
SpaceUuid: spaceUuid,
|
||||
}
|
||||
this.shareDao.Create(share)
|
||||
|
||||
@@ -194,14 +176,14 @@ func (this *ShareController) DeleteBatch(writer http.ResponseWriter, request *ht
|
||||
|
||||
for _, uuid := range uuidArray {
|
||||
|
||||
imageCache := this.shareDao.FindByUuid(uuid)
|
||||
share := this.shareDao.FindByUuid(uuid)
|
||||
|
||||
user := this.checkUser(request)
|
||||
if imageCache.UserUuid != user.Uuid {
|
||||
if share.UserUuid != user.Uuid {
|
||||
panic(result.UNAUTHORIZED)
|
||||
}
|
||||
|
||||
this.shareDao.Delete(imageCache)
|
||||
this.shareDao.Delete(share)
|
||||
}
|
||||
|
||||
return this.Success("OK")
|
||||
|
||||
@@ -33,6 +33,7 @@ type Share struct {
|
||||
Code string `json:"code" gorm:"type:varchar(45) not null"`
|
||||
ExpireInfinity bool `json:"expireInfinity" gorm:"type:tinyint(1) not null;default:0"`
|
||||
ExpireTime time.Time `json:"expireTime" gorm:"type:timestamp not null;default:'2018-01-01 00:00:00'"`
|
||||
SpaceUuid string `json:"spaceUuid" gorm:"type:char(36) not null;index:idx_space_uuid"`
|
||||
DirMatter *Matter `json:"dirMatter" gorm:"-"`
|
||||
Matters []*Matter `json:"matters" gorm:"-"`
|
||||
}
|
||||
|
||||
@@ -4,6 +4,8 @@ import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
// param is required. when missing, panic error.
|
||||
@@ -26,6 +28,20 @@ func ExtractRequestStringWithErrorHint(request *http.Request, key string, errorH
|
||||
}
|
||||
}
|
||||
|
||||
// split by comma , param is required. when missing, panic error.
|
||||
func ExtractRequestArray(request *http.Request, key string) []string {
|
||||
str := request.FormValue(key)
|
||||
if str == "" {
|
||||
panic(fmt.Sprintf("%s is required", key))
|
||||
} else {
|
||||
arr := strings.Split(str, ",")
|
||||
if len(arr) == 0 {
|
||||
panic(fmt.Sprintf("%s cannot be empty", key))
|
||||
}
|
||||
return arr
|
||||
}
|
||||
}
|
||||
|
||||
// param is required. when missing, panic error.
|
||||
func ExtractRequestInt64(request *http.Request, key string) int64 {
|
||||
keyStr := request.FormValue(key)
|
||||
@@ -85,6 +101,22 @@ func ExtractRequestOptionalString(request *http.Request, key string, defaultValu
|
||||
}
|
||||
|
||||
// param is required. when missing, panic error.
|
||||
func ExtractRequestBool(request *http.Request, key string) bool {
|
||||
str := request.FormValue(key)
|
||||
if str == "true" {
|
||||
return true
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
// param is required. when missing, panic error.
|
||||
func ExtractRequestTime(request *http.Request, key string) time.Time {
|
||||
str := request.FormValue(key)
|
||||
return ConvertDateTimeStringToTime(str)
|
||||
}
|
||||
|
||||
// param is optional. when missing, use default.
|
||||
func ExtractRequestOptionalBool(request *http.Request, key string, defaultValue bool) bool {
|
||||
str := request.FormValue(key)
|
||||
if str == "" {
|
||||
|
||||
Reference in New Issue
Block a user