feat: fix the role in space memeber.

This commit is contained in:
lishuang
2023-07-22 20:05:25 +08:00
parent 4ebf15f3c1
commit f0a1c0ab06
3 changed files with 24 additions and 7 deletions
+4 -2
View File
@@ -58,9 +58,11 @@ func (this *SpaceMemberController) RegisterRoutes() map[string]func(writer http.
routeMap := make(map[string]func(writer http.ResponseWriter, request *http.Request))
//admin user can create/edit/delete
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/mine"] = this.Wrap(this.Mine, USER_ROLE_USER)
routeMap["/api/space/member/page"] = this.Wrap(this.Page, USER_ROLE_USER)
@@ -110,7 +112,7 @@ func (this *SpaceMemberController) Edit(writer http.ResponseWriter, request *htt
spaceMember := this.spaceMemberDao.CheckByUuid(uuid)
currentUser := this.checkUser(request)
canManage := this.spaceMemberService.canManageBySpaceMember(currentUser, spaceMember)
canManage := this.spaceMemberService.canManage(currentUser, spaceMember.SpaceUuid)
if !canManage {
panic(result.BadRequestI18n(request, i18n.PermissionDenied))
}
@@ -126,7 +128,7 @@ func (this *SpaceMemberController) Delete(writer http.ResponseWriter, request *h
spaceMember := this.spaceMemberDao.CheckByUuid(uuid)
user := this.checkUser(request)
canManage := this.spaceMemberService.canManageBySpaceMember(user, spaceMember)
canManage := this.spaceMemberService.canManage(user, spaceMember.SpaceUuid)
if !canManage {
panic(result.BadRequestI18n(request, i18n.PermissionDenied))
}
+2 -2
View File
@@ -5,13 +5,13 @@ import (
)
const (
//read only member
//guest member
SPACE_MEMBER_GUEST = "GUEST"
//read only member
SPACE_MEMBER_ROLE_READ_ONLY = "READ_ONLY"
//read write member
SPACE_MEMBER_ROLE_READ_WRITE = "READ_WRITE"
//read write member
//admin member
SPACE_MEMBER_ROLE_ADMIN = "ADMIN"
)
+18 -3
View File
@@ -105,6 +105,21 @@ func (this *SpaceService) CreateSpace(
}
// checkout a adminAble space.
func (this *SpaceService) CheckAdminAbleByUuid(request *http.Request, user *User, spaceUuid string) *Space {
space := this.spaceDao.CheckByUuid(spaceUuid)
if space.Type == SPACE_TYPE_PRIVATE && user.Uuid == space.UserUuid {
return space
}
manage := this.spaceMemberService.canManage(user, spaceUuid)
if !manage {
panic(result.BadRequestI18n(request, i18n.PermissionDenied))
}
return space
}
// checkout a writable space.
func (this *SpaceService) CheckWritableByUuid(request *http.Request, user *User, spaceUuid string) *Space {
space := this.spaceDao.CheckByUuid(spaceUuid)
@@ -112,8 +127,8 @@ func (this *SpaceService) CheckWritableByUuid(request *http.Request, user *User,
return space
}
manage := this.spaceMemberService.canWrite(user, spaceUuid)
if !manage {
writable := this.spaceMemberService.canWrite(user, spaceUuid)
if !writable {
panic(result.BadRequestI18n(request, i18n.PermissionDenied))
}
@@ -137,7 +152,7 @@ func (this *SpaceService) CheckReadableByUuid(request *http.Request, user *User,
// edit space's info
func (this *SpaceService) Edit(request *http.Request, user *User, spaceUuid string, sizeLimit int64, totalSizeLimit int64) *Space {
space := this.CheckWritableByUuid(request, user, spaceUuid)
space := this.CheckAdminAbleByUuid(request, user, spaceUuid)
if sizeLimit < 0 && sizeLimit != -1 {
panic("sizeLimit cannot be negative expect -1.")