From 89644e4702c824f5080ae9ebcf49ff45031f4e00 Mon Sep 17 00:00:00 2001 From: HimbeerserverDE Date: Sun, 24 Oct 2021 15:21:56 +0200 Subject: [PATCH] Prepare for storing last server --- auth.go | 2 ++ auth_files.go | 17 +++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/auth.go b/auth.go index 92901df..d4415ee 100644 --- a/auth.go +++ b/auth.go @@ -25,6 +25,8 @@ type authBackend interface { Exists(name string) bool Passwd(name string) (salt, verifier []byte, err error) SetPasswd(name string, salt, verifier []byte) error + LastSrv(name string) (string, error) + SetLastSrv(name, srv string) error Timestamp(name string) (time.Time, error) Import(in []user) Export() ([]user, error) diff --git a/auth_files.go b/auth_files.go index 78adbac..e6b4abf 100644 --- a/auth_files.go +++ b/auth_files.go @@ -52,6 +52,23 @@ func (a authFiles) SetPasswd(name string, salt, verifier []byte) error { return nil } +// LastSrv returns the last server a user was on. +func (a authFiles) LastSrv(name string) (string, error) { + os.Mkdir(Path("auth"), 0700) + os.Mkdir(Path("auth/", name), 0700) + + srv, err := os.ReadFile(Path("auth/", name, "/last_server")) + return string(srv), err +} + +// SetLastSrv sets the last server a user was on. +func (a authFiles) SetLastSrv(name, srv string) error { + os.Mkdir(Path("auth"), 0700) + os.Mkdir(Path("auth/", name), 0700) + + return os.WriteFile(Path("auth/", name, "/last_server"), []byte(srv), 0600) +} + // Timestamp returns the last time an authentication entry was accessed // or an error. func (a authFiles) Timestamp(name string) (time.Time, error) {