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)
|
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 {
|
func (r *Room) SetMemberPermissions(userID string, permissions model.RoomMemberPermission) error {
|
||||||
if r.IsCreator(userID) {
|
if r.IsCreator(userID) {
|
||||||
return errors.New("you are creator, cannot set permissions")
|
return errors.New("you are creator, cannot set permissions")
|
||||||
}
|
}
|
||||||
if r.IsGuest(userID) {
|
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)
|
defer r.members.Delete(userID)
|
||||||
return db.SetMemberPermissions(r.ID, userID, permissions)
|
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 {
|
func (r *Room) AddMemberPermissions(userID string, permissions model.RoomMemberPermission) error {
|
||||||
if r.IsGuest(userID) {
|
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) {
|
if r.IsAdmin(userID) {
|
||||||
return errors.New("cannot add permissions to admin")
|
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 {
|
func (r *Room) RemoveMemberPermissions(userID string, permissions model.RoomMemberPermission) error {
|
||||||
if r.IsGuest(userID) {
|
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) {
|
if r.IsAdmin(userID) {
|
||||||
return errors.New("cannot remove permissions from admin")
|
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 {
|
func genRoomMemberListResp(us []*dbModel.User, room *op.Room) []*model.RoomMembersResp {
|
||||||
resp := make([]*model.RoomMembersResp, len(us))
|
resp := make([]*model.RoomMembersResp, len(us))
|
||||||
for i, v := range us {
|
for i, v := range us {
|
||||||
|
permissions := v.RoomMembers[0].Permissions
|
||||||
|
if room.IsGuest(v.ID) {
|
||||||
|
permissions = room.Settings.GuestPermissions
|
||||||
|
}
|
||||||
resp[i] = &model.RoomMembersResp{
|
resp[i] = &model.RoomMembersResp{
|
||||||
UserID: v.ID,
|
UserID: v.ID,
|
||||||
Username: v.Username,
|
Username: v.Username,
|
||||||
|
@ -321,7 +325,7 @@ func genRoomMemberListResp(us []*dbModel.User, room *op.Room) []*model.RoomMembe
|
||||||
Role: v.RoomMembers[0].Role,
|
Role: v.RoomMembers[0].Role,
|
||||||
Status: v.RoomMembers[0].Status,
|
Status: v.RoomMembers[0].Status,
|
||||||
RoomID: v.RoomMembers[0].RoomID,
|
RoomID: v.RoomMembers[0].RoomID,
|
||||||
Permissions: v.RoomMembers[0].Permissions,
|
Permissions: permissions,
|
||||||
AdminPermissions: v.RoomMembers[0].AdminPermissions,
|
AdminPermissions: v.RoomMembers[0].AdminPermissions,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue