Fix: can not set guest permission

pull/134/head
zijiren233 1 year ago
parent bb1de8474d
commit 0f3f27d703

@ -449,16 +449,25 @@ func (r *Room) ResetMemberPermissions(userID string) error {
} }
func (r *Room) SetMemberPermissions(userID string, permissions model.RoomMemberPermission) error { func (r *Room) SetMemberPermissions(userID string, permissions model.RoomMemberPermission) error {
if r.IsGuest(userID) {
return errors.New("cannot set guest permissions")
}
defer r.members.Delete(userID) defer r.members.Delete(userID)
return db.SetMemberPermissions(r.ID, userID, permissions) return db.SetMemberPermissions(r.ID, userID, permissions)
} }
func (r *Room) AddMemberPermissions(userID string, permissions model.RoomMemberPermission) error { func (r *Room) AddMemberPermissions(userID string, permissions model.RoomMemberPermission) error {
if r.IsGuest(userID) {
return errors.New("cannot add guest permissions")
}
defer r.members.Delete(userID) defer r.members.Delete(userID)
return db.AddMemberPermissions(r.ID, userID, permissions) return db.AddMemberPermissions(r.ID, userID, permissions)
} }
func (r *Room) RemoveMemberPermissions(userID string, permissions model.RoomMemberPermission) error { func (r *Room) RemoveMemberPermissions(userID string, permissions model.RoomMemberPermission) error {
if r.IsGuest(userID) {
return errors.New("cannot remove guest permissions")
}
defer r.members.Delete(userID) defer r.members.Delete(userID)
return db.RemoveMemberPermissions(r.ID, userID, permissions) return db.RemoveMemberPermissions(r.ID, userID, permissions)
} }
@ -492,16 +501,31 @@ func (r *Room) ResetAdminPermissions(userID string) error {
} }
func (r *Room) SetAdminPermissions(userID string, permissions model.RoomAdminPermission) error { func (r *Room) SetAdminPermissions(userID string, permissions model.RoomAdminPermission) error {
if member, err := r.LoadRoomMember(userID); err != nil {
return err
} else if !member.Role.IsAdmin() {
return errors.New("not admin")
}
defer r.members.Delete(userID) defer r.members.Delete(userID)
return db.RoomSetAdminPermissions(r.ID, userID, permissions) return db.RoomSetAdminPermissions(r.ID, userID, permissions)
} }
func (r *Room) AddAdminPermissions(userID string, permissions model.RoomAdminPermission) error { func (r *Room) AddAdminPermissions(userID string, permissions model.RoomAdminPermission) error {
if member, err := r.LoadRoomMember(userID); err != nil {
return err
} else if !member.Role.IsAdmin() {
return errors.New("not admin")
}
defer r.members.Delete(userID) defer r.members.Delete(userID)
return db.RoomSetAdminPermissions(r.ID, userID, permissions) return db.RoomSetAdminPermissions(r.ID, userID, permissions)
} }
func (r *Room) RemoveAdminPermissions(userID string, permissions model.RoomAdminPermission) error { func (r *Room) RemoveAdminPermissions(userID string, permissions model.RoomAdminPermission) error {
if member, err := r.LoadRoomMember(userID); err != nil {
return err
} else if !member.Role.IsAdmin() {
return errors.New("not admin")
}
defer r.members.Delete(userID) defer r.members.Delete(userID)
return db.RoomSetAdminPermissions(r.ID, userID, 0) return db.RoomSetAdminPermissions(r.ID, userID, 0)
} }
@ -510,6 +534,9 @@ func (r *Room) SetAdmin(userID string, permissions model.RoomAdminPermission) er
if r.IsCreator(userID) { if r.IsCreator(userID) {
return errors.New("you are creator, cannot set admin") return errors.New("you are creator, cannot set admin")
} }
if r.IsGuest(userID) {
return errors.New("cannot set guest as admin")
}
defer r.members.Delete(userID) defer r.members.Delete(userID)
return db.RoomSetAdmin(r.ID, userID, permissions) return db.RoomSetAdmin(r.ID, userID, permissions)
} }

Loading…
Cancel
Save