diff options
| author | bt <bt@rctt.net> | 2026-05-24 22:00:34 +0200 |
|---|---|---|
| committer | bt <bt@rctt.net> | 2026-05-24 22:00:34 +0200 |
| commit | 9fb83be2ad5396b6a33b75be806d18a92fe602fc (patch) | |
| tree | 355b23c0a09612c644d0216168a5b26e5d8cee1a /server/user.go | |
| parent | 60c6f3dd306c50bb2330eb09372bd032eaf996eb (diff) | |
| download | solec-9fb83be2ad5396b6a33b75be806d18a92fe602fc.tar.gz solec-9fb83be2ad5396b6a33b75be806d18a92fe602fc.zip | |
[common] Fix usermode
Diffstat (limited to 'server/user.go')
| -rw-r--r-- | server/user.go | 35 |
1 files changed, 19 insertions, 16 deletions
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() |
