diff --git a/internal/op/room.go b/internal/op/room.go index b14552d..5f5e2d3 100644 --- a/internal/op/room.go +++ b/internal/op/room.go @@ -411,11 +411,17 @@ func (r *Room) ApprovePendingMember(userID string) error { } func (r *Room) BanMember(userID string) error { + if r.IsCreator(userID) { + return errors.New("you are creator, cannot ban") + } defer r.members.Delete(userID) return db.RoomBanMember(r.ID, userID) } func (r *Room) UnbanMember(userID string) error { + if r.IsCreator(userID) { + return errors.New("you are creator, cannot unban") + } defer r.members.Delete(userID) return db.RoomUnbanMember(r.ID, userID) } @@ -440,11 +446,17 @@ func (r *Room) RemoveAdminPermissions(userID string, permissions model.RoomAdmin } func (r *Room) SetAdmin(userID string, permissions model.RoomAdminPermission) error { + if r.IsCreator(userID) { + return errors.New("you are creator, cannot set admin") + } defer r.members.Delete(userID) return db.RoomSetAdmin(r.ID, userID, permissions) } func (r *Room) SetMember(userID string, permissions model.RoomMemberPermission) error { + if r.IsCreator(userID) { + return errors.New("you are creator, cannot set member") + } defer r.members.Delete(userID) return db.RoomSetMember(r.ID, userID, permissions) } diff --git a/server/handlers/init.go b/server/handlers/init.go index 220b932..18c89ab 100644 --- a/server/handlers/init.go +++ b/server/handlers/init.go @@ -195,9 +195,9 @@ func initRoom(room *gin.RouterGroup, needAuthUser *gin.RouterGroup, needAuthRoom needAuthRoomAdmin.POST("/members/unban", RoomAdminUnbanMember) - needAuthRoomCreator.POST("/members/permissions", RoomSetMemberPermissions) + needAuthRoomCreator.POST("/members/member", RoomSetMember) - needAuthRoomCreator.POST("/members", RoomSetMember) + needAuthRoomCreator.POST("/members/member/permissions", RoomSetMemberPermissions) needAuthRoomCreator.POST("/members/admin", RoomSetAdmin)