add MemberProfile to session.

This commit is contained in:
Miroslav Šedivý 2020-11-25 19:44:50 +01:00
parent b73e2403af
commit bc77c8f8f5
2 changed files with 23 additions and 12 deletions

View File

@ -42,9 +42,11 @@ func (manager *SessionManagerCtx) New(id string, admin bool) types.Session {
session := &SessionCtx{
id: id,
admin: admin,
manager: manager,
logger: manager.logger.With().Str("id", id).Logger(),
profile: MemberProfile{
is_admin: admin,
},
connected: false,
}
@ -116,7 +118,7 @@ func (manager *SessionManagerCtx) Admins() []types.Session {
var sessions []types.Session
for _, session := range manager.members {
if !session.connected || !session.admin {
if !session.Connected() || !session.Admin() {
continue
}
@ -132,7 +134,7 @@ func (manager *SessionManagerCtx) Members() []types.Session {
var sessions []types.Session
for _, session := range manager.members {
if !session.connected {
if !session.Connected() {
continue
}
@ -147,7 +149,7 @@ func (manager *SessionManagerCtx) Broadcast(v interface{}, exclude interface{})
defer manager.membersMu.Unlock()
for id, session := range manager.members {
if !session.connected {
if !session.Connected() {
continue
}
@ -168,7 +170,7 @@ func (manager *SessionManagerCtx) AdminBroadcast(v interface{}, exclude interfac
defer manager.membersMu.Unlock()
for id, session := range manager.members {
if !session.connected || !session.Admin() {
if !session.Connected() || !session.Admin() {
continue
}

View File

@ -8,15 +8,24 @@ import (
"demodesk/neko/internal/types/message"
)
type MemberProfile struct {
token string
name string
is_admin bool
enabled bool
can_control bool
can_watch bool
clipboard_access bool
}
type SessionCtx struct {
logger zerolog.Logger
id string
name string
admin bool
connected bool
logger zerolog.Logger
manager *SessionManagerCtx
profile MemberProfile
websocket_peer types.WebSocketPeer
webrtc_peer types.WebRTCPeer
connected bool
}
func (session *SessionCtx) ID() string {
@ -24,11 +33,11 @@ func (session *SessionCtx) ID() string {
}
func (session *SessionCtx) Name() string {
return session.name
return session.profile.name
}
func (session *SessionCtx) Admin() bool {
return session.admin
return session.profile.is_admin
}
func (session *SessionCtx) IsHost() bool {
@ -40,7 +49,7 @@ func (session *SessionCtx) Connected() bool {
}
func (session *SessionCtx) SetName(name string) {
session.name = name
session.profile.name = name
}
func (session *SessionCtx) SetWebSocketPeer(websocket_peer types.WebSocketPeer) {