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 {
if r.IsGuest(userID) {
return errors.New("cannot set guest permissions")
}
defer r.members.Delete(userID)
return db.SetMemberPermissions(r.ID, userID, permissions)
}
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)
return db.AddMemberPermissions(r.ID, userID, permissions)
}
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)
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 {
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)
return db.RoomSetAdminPermissions(r.ID, userID, permissions)
}
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)
return db.RoomSetAdminPermissions(r.ID, userID, permissions)
}
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)
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) {
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)
return db.RoomSetAdmin(r.ID, userID, permissions)
}

Loading…
Cancel
Save