aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHimbeerserverDE <himbeerserverde@gmail.com>2021-10-24 15:21:56 +0200
committerHimbeerserverDE <himbeerserverde@gmail.com>2021-10-24 15:21:56 +0200
commit89644e4702c824f5080ae9ebcf49ff45031f4e00 (patch)
tree733e1202836213a27cd3ed727f8d9230454c3ae6
parent813d03a5c700947973d3a5e90b4f0242f3b5a896 (diff)
Prepare for storing last server
-rw-r--r--auth.go2
-rw-r--r--auth_files.go17
2 files changed, 19 insertions, 0 deletions
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) {