mirror of
https://github.com/eyebluecn/tank.git
synced 2024-04-21 12:32:16 +00:00
feat: fix the role in space memeber.
This commit is contained in:
@@ -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))
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
)
|
||||
|
||||
|
||||
@@ -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.")
|
||||
|
||||
Reference in New Issue
Block a user