mirror of
https://github.com/eyebluecn/tank.git
synced 2024-04-21 12:32:16 +00:00
feat: finish the edit for space and space member.
This commit is contained in:
@@ -61,6 +61,7 @@ func (this *SpaceController) RegisterRoutes() map[string]func(writer http.Respon
|
||||
routeMap := make(map[string]func(writer http.ResponseWriter, request *http.Request))
|
||||
|
||||
routeMap["/api/space/create"] = this.Wrap(this.Create, USER_ROLE_ADMINISTRATOR)
|
||||
routeMap["/api/space/edit"] = this.Wrap(this.Edit, USER_ROLE_ADMINISTRATOR)
|
||||
routeMap["/api/space/delete"] = this.Wrap(this.Delete, USER_ROLE_ADMINISTRATOR)
|
||||
routeMap["/api/space/detail"] = this.Wrap(this.Detail, USER_ROLE_USER)
|
||||
routeMap["/api/space/page"] = this.Wrap(this.Page, USER_ROLE_USER)
|
||||
@@ -119,6 +120,47 @@ func (this *SpaceController) Create(writer http.ResponseWriter, request *http.Re
|
||||
return this.Success(space)
|
||||
}
|
||||
|
||||
func (this *SpaceController) Edit(writer http.ResponseWriter, request *http.Request) *result.WebResult {
|
||||
//space's name
|
||||
spaceUuid := request.FormValue("spaceUuid")
|
||||
sizeLimitStr := request.FormValue("sizeLimit")
|
||||
totalSizeLimitStr := request.FormValue("totalSizeLimit")
|
||||
|
||||
//only admin can edit user's sizeLimit
|
||||
var sizeLimit int64 = 0
|
||||
if sizeLimitStr == "" {
|
||||
panic("space's limit size is required")
|
||||
} else {
|
||||
intSizeLimit, err := strconv.Atoi(sizeLimitStr)
|
||||
if err != nil {
|
||||
this.PanicError(err)
|
||||
}
|
||||
sizeLimit = int64(intSizeLimit)
|
||||
}
|
||||
|
||||
var totalSizeLimit int64 = 0
|
||||
if totalSizeLimitStr == "" {
|
||||
panic("space's total limit size is required")
|
||||
} else {
|
||||
intTotalSizeLimit, err := strconv.Atoi(totalSizeLimitStr)
|
||||
if err != nil {
|
||||
this.PanicError(err)
|
||||
}
|
||||
totalSizeLimit = int64(intTotalSizeLimit)
|
||||
}
|
||||
|
||||
space := this.spaceDao.CheckByUuid(spaceUuid)
|
||||
spaceUser := this.userDao.CheckByUuid(space.UserUuid)
|
||||
spaceUser.SizeLimit = sizeLimit
|
||||
spaceUser.TotalSizeLimit = totalSizeLimit
|
||||
|
||||
spaceUser = this.userDao.Save(spaceUser)
|
||||
|
||||
space.User = spaceUser
|
||||
|
||||
return this.Success(space)
|
||||
}
|
||||
|
||||
func (this *SpaceController) Delete(writer http.ResponseWriter, request *http.Request) *result.WebResult {
|
||||
|
||||
uuid := request.FormValue("uuid")
|
||||
|
||||
@@ -59,6 +59,7 @@ func (this *SpaceMemberController) RegisterRoutes() map[string]func(writer http.
|
||||
routeMap := make(map[string]func(writer http.ResponseWriter, request *http.Request))
|
||||
|
||||
routeMap["/api/space/member/create"] = this.Wrap(this.Create, USER_ROLE_USER)
|
||||
routeMap["/api/space/member/edit"] = this.Wrap(this.Edit, USER_ROLE_USER)
|
||||
routeMap["/api/space/member/delete"] = this.Wrap(this.Delete, USER_ROLE_USER)
|
||||
routeMap["/api/space/member/detail"] = this.Wrap(this.Detail, USER_ROLE_USER)
|
||||
routeMap["/api/space/member/page"] = this.Wrap(this.Page, USER_ROLE_USER)
|
||||
@@ -104,6 +105,28 @@ func (this *SpaceMemberController) Create(writer http.ResponseWriter, request *h
|
||||
return this.Success(spaceMember)
|
||||
}
|
||||
|
||||
func (this *SpaceMemberController) Edit(writer http.ResponseWriter, request *http.Request) *result.WebResult {
|
||||
spaceMemberUuid := request.FormValue("spaceMemberUuid")
|
||||
spaceRole := request.FormValue("spaceRole")
|
||||
|
||||
if spaceRole != SPACE_MEMBER_ROLE_READ_ONLY && spaceRole != SPACE_MEMBER_ROLE_READ_WRITE && spaceRole != SPACE_MEMBER_ROLE_ADMIN {
|
||||
panic("spaceRole is not correct")
|
||||
}
|
||||
|
||||
spaceMember := this.spaceMemberDao.CheckByUuid(spaceMemberUuid)
|
||||
|
||||
currentUser := this.checkUser(request)
|
||||
canManage := this.spaceMemberService.canManageBySpaceMember(currentUser, spaceMember)
|
||||
if !canManage {
|
||||
panic(result.BadRequestI18n(request, i18n.PermissionDenied))
|
||||
}
|
||||
|
||||
spaceMember.Role = spaceRole
|
||||
spaceMember = this.spaceMemberDao.Save(spaceMember)
|
||||
|
||||
return this.Success(spaceMember)
|
||||
}
|
||||
|
||||
func (this *SpaceMemberController) Delete(writer http.ResponseWriter, request *http.Request) *result.WebResult {
|
||||
|
||||
uuid := request.FormValue("uuid")
|
||||
|
||||
Reference in New Issue
Block a user