From 9fb83be2ad5396b6a33b75be806d18a92fe602fc Mon Sep 17 00:00:00 2001 From: bt Date: Sun, 24 May 2026 22:00:34 +0200 Subject: [common] Fix usermode --- server/user.go | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) (limited to 'server') diff --git a/server/user.go b/server/user.go index c615c40..9a0a71b 100644 --- a/server/user.go +++ b/server/user.go @@ -132,26 +132,29 @@ func (s *Server) handleUserPayload(user *User, sender net.Conn, payload any) err } func (s *Server) handleUsermode(user *User, conn net.Conn, mode core.Usermode) error { + _, err := core.ReadAddr(mode.UserAddr) + if err != nil { + log.Println("invalid user address") + return err + } - /* - userAddr, err := core.ReadAddr(mode.UserAddr) - if err != nil { - return err - } + _, err = core.ReadAddr(mode.ChannelAddr) + if err != nil { + log.Println("invalid channel address") + return err + } - chanAddr, err := core.ReadAddr(mode.ChannelAddr) - if err != nil { - return err - } + perm := core.PermissionData{ + User: mode.UserAddr, + Channel: mode.ChannelAddr, + } - if user.Addr != userAddr.Channel { - log.Println("unauthorized") - return user.Send(conn, core.Error{core.ErrorUnauthorized}) - } + if mode.Mode == core.UsermodeInChannel { + perm.Read = true + perm.Write = true + } - // TODO: change user permissions here - */ - return nil + return s.Storage.SetPermission(perm) } // TODO: Replace user.Send(error) with conn.Send() -- cgit v1.2.3