mirror of https://github.com/synctv-org/synctv.git
fix: user guest permission set
This commit is contained in:
parent
530fda45a9
commit
919c0c7ddb
|
@ -540,12 +540,18 @@ func (r *Room) ResetMemberPermissions(userID string) error {
|
|||
return r.SetMemberPermissions(userID, r.Settings.UserDefaultPermissions)
|
||||
}
|
||||
|
||||
func (r *Room) SetGuestPermissions(permissions model.RoomMemberPermission) error {
|
||||
return r.UpdateSettings(map[string]any{
|
||||
"guest_permissions": permissions,
|
||||
})
|
||||
}
|
||||
|
||||
func (r *Room) SetMemberPermissions(userID string, permissions model.RoomMemberPermission) error {
|
||||
if r.IsCreator(userID) {
|
||||
return errors.New("you are creator, cannot set permissions")
|
||||
}
|
||||
if r.IsGuest(userID) {
|
||||
return errors.New("please set the permissions for the guest user in the room settings.")
|
||||
return r.SetGuestPermissions(permissions)
|
||||
}
|
||||
defer r.members.Delete(userID)
|
||||
return db.SetMemberPermissions(r.ID, userID, permissions)
|
||||
|
@ -553,7 +559,7 @@ func (r *Room) SetMemberPermissions(userID string, permissions model.RoomMemberP
|
|||
|
||||
func (r *Room) AddMemberPermissions(userID string, permissions model.RoomMemberPermission) error {
|
||||
if r.IsGuest(userID) {
|
||||
return errors.New("please set the permissions for the guest user in the room settings.")
|
||||
return r.SetGuestPermissions(r.Settings.GuestPermissions.Add(permissions))
|
||||
}
|
||||
if r.IsAdmin(userID) {
|
||||
return errors.New("cannot add permissions to admin")
|
||||
|
@ -564,7 +570,7 @@ func (r *Room) AddMemberPermissions(userID string, permissions model.RoomMemberP
|
|||
|
||||
func (r *Room) RemoveMemberPermissions(userID string, permissions model.RoomMemberPermission) error {
|
||||
if r.IsGuest(userID) {
|
||||
return errors.New("please set the permissions for the guest user in the room settings.")
|
||||
return r.SetGuestPermissions(r.Settings.GuestPermissions.Remove(permissions))
|
||||
}
|
||||
if r.IsAdmin(userID) {
|
||||
return errors.New("cannot remove permissions from admin")
|
||||
|
|
|
@ -313,6 +313,10 @@ func AdminGetRoomMembers(ctx *gin.Context) {
|
|||
func genRoomMemberListResp(us []*dbModel.User, room *op.Room) []*model.RoomMembersResp {
|
||||
resp := make([]*model.RoomMembersResp, len(us))
|
||||
for i, v := range us {
|
||||
permissions := v.RoomMembers[0].Permissions
|
||||
if room.IsGuest(v.ID) {
|
||||
permissions = room.Settings.GuestPermissions
|
||||
}
|
||||
resp[i] = &model.RoomMembersResp{
|
||||
UserID: v.ID,
|
||||
Username: v.Username,
|
||||
|
@ -321,7 +325,7 @@ func genRoomMemberListResp(us []*dbModel.User, room *op.Room) []*model.RoomMembe
|
|||
Role: v.RoomMembers[0].Role,
|
||||
Status: v.RoomMembers[0].Status,
|
||||
RoomID: v.RoomMembers[0].RoomID,
|
||||
Permissions: v.RoomMembers[0].Permissions,
|
||||
Permissions: permissions,
|
||||
AdminPermissions: v.RoomMembers[0].AdminPermissions,
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue