summaryrefslogtreecommitdiffstats
path: root/server/user.go
diff options
context:
space:
mode:
authorbt <bt@rctt.net>2026-05-24 19:17:10 +0200
committerbt <bt@rctt.net>2026-05-24 19:17:10 +0200
commitbd2ebe456996a51ad4230ea9c69f2d7c0879cf9d (patch)
treeeb105aa9bf2fa07b0d4d9b637b8181bcd3f4914b /server/user.go
parent51c603afe0373f45f8d389c99cac9d3aec959b75 (diff)
downloadsolec-bd2ebe456996a51ad4230ea9c69f2d7c0879cf9d.tar.gz
solec-bd2ebe456996a51ad4230ea9c69f2d7c0879cf9d.zip
[daemon] Authorize using database
Diffstat (limited to 'server/user.go')
-rw-r--r--server/user.go19
1 files changed, 13 insertions, 6 deletions
diff --git a/server/user.go b/server/user.go
index 5b8049f..c27c6a1 100644
--- a/server/user.go
+++ b/server/user.go
@@ -84,15 +84,16 @@ func (s *Server) performUserAuth(conn net.Conn) (string, error) {
return "", core.ErrUnexpectedPayloadType
}
- // For testing ---
- if clientAuth.Pass != "valid" {
- if err := core.Send(conn, core.Error{core.ErrorAuthFailed}); err != nil {
- log.Println("cannot send auth error:", err)
- }
+ hash, err := s.Storage.GetUserPass(clientAuth.Name)
+ if err != nil {
+ s.authFail(conn)
+ return "", core.ErrAuthInvalidUser
+ }
+ if !core.CheckPass(clientAuth.Pass, hash) {
+ s.authFail(conn)
return "", core.ErrAuthInvalidPassword
}
- // ---
if err := core.Send(conn, core.Success{}); err != nil {
return "", err
@@ -101,6 +102,12 @@ func (s *Server) performUserAuth(conn net.Conn) (string, error) {
return clientAuth.Name, nil
}
+func (s *Server) authFail(conn net.Conn) {
+ if err := core.Send(conn, core.Error{core.ErrorAuthFailed}); err != nil {
+ log.Println("cannot send auth error:", err)
+ }
+}
+
func (s *Server) readUserInput(user *User, conn net.Conn) error {
for {
payload, err := core.Decode(conn)