feat: finish the edit for space and space member.

This commit is contained in:
lishuang
2023-05-13 19:12:21 +08:00
parent 6c52e87396
commit 5f2fa2f033
2 changed files with 65 additions and 0 deletions
+42
View File
@@ -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")
+23
View File
@@ -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")