SetProfile changed as Update.

This commit is contained in:
Miroslav Šedivý 2020-12-05 22:18:45 +01:00
parent 22407825fe
commit a6fbafc079
4 changed files with 21 additions and 8 deletions

View File

@ -84,7 +84,7 @@ func (h *MembersHandler) membersUpdate(w http.ResponseWriter, r *http.Request) {
// TODO: Join structs?
// TODO: Update independent props.
member.SetProfile(types.MemberProfile{
if err := h.sessions.Update(member.ID(), types.MemberProfile{
Secret: data.Secret,
Name: data.Name,
IsAdmin: data.IsAdmin,
@ -93,7 +93,10 @@ func (h *MembersHandler) membersUpdate(w http.ResponseWriter, r *http.Request) {
CanWatch: data.CanWatch,
CanHost: data.CanHost,
CanAccessClipboard: data.CanAccessClipboard,
})
}); err != nil {
utils.HttpInternalServerError(w, err)
return
}
utils.HttpSuccess(w)
}

View File

@ -67,6 +67,21 @@ func (manager *SessionManagerCtx) Create(id string, profile types.MemberProfile)
return session
}
func (manager *SessionManagerCtx) Update(id string, profile types.MemberProfile) error {
manager.membersMu.Lock()
session, ok := manager.members[id]
if !ok {
manager.membersMu.Unlock()
return fmt.Errorf("Member not found.")
}
session.profile = profile
manager.membersMu.Unlock()
manager.emmiter.Emit("profile_changed", session)
return nil
}
func (manager *SessionManagerCtx) Get(id string) (types.Session, bool) {
manager.membersMu.Lock()
session, ok := manager.members[id]

View File

@ -59,11 +59,6 @@ func (session *SessionCtx) CanAccessClipboard() bool {
return session.profile.CanAccessClipboard
}
func (session *SessionCtx) SetProfile(profile types.MemberProfile) {
session.profile = profile
session.manager.emmiter.Emit("profile_changed", session)
}
// ---
// runtime
// ---

View File

@ -25,7 +25,6 @@ type Session interface {
CanWatch() bool
CanHost() bool
CanAccessClipboard() bool
SetProfile(profile MemberProfile)
IsHost() bool
IsConnected() bool
@ -43,6 +42,7 @@ type Session interface {
type SessionManager interface {
Create(id string, profile MemberProfile) Session
Update(id string, profile MemberProfile) error
Get(id string) (Session, bool)
Delete(id string) error