about summary refs log tree commit diff stats
path: root/svc/leveldb.go
diff options
context:
space:
mode:
authorBenjamin Morrison <ben@gbmor.dev>2021-10-21 21:31:17 -0400
committerBenjamin Morrison <ben@gbmor.dev>2021-10-21 21:35:23 -0400
commitdd3d87bd97e41c77eea270812d338139fd87b9fc (patch)
tree5ee99ab38e00c41190f82bef4b08a298c914f329 /svc/leveldb.go
parentdcb254618dc5541bb50c488c96b5e02c36951c06 (diff)
downloadgetwtxt-dd3d87bd97e41c77eea270812d338139fd87b9fc.tar.gz
delete a user, new config option for admin pass. pass is bcrypt hashed on startup and not stored in plaintext.
Diffstat (limited to 'svc/leveldb.go')
-rw-r--r--svc/leveldb.go21
1 files changed, 21 insertions, 0 deletions
diff --git a/svc/leveldb.go b/svc/leveldb.go
index 5fb4a45..a429934 100644
--- a/svc/leveldb.go
+++ b/svc/leveldb.go
@@ -33,6 +33,27 @@ type dbLevel struct {
 	db *leveldb.DB
 }
 
+func (lvl *dbLevel) delUser(userURL string) error {
+	twtxtCache.Mu.RLock()
+	defer twtxtCache.Mu.RUnlock()
+
+	userStatuses := twtxtCache.Users[userURL].Status
+	var dbBasket = &leveldb.Batch{}
+
+	dbBasket.Delete([]byte(userURL + "*Nick"))
+	dbBasket.Delete([]byte(userURL + "*URL"))
+	dbBasket.Delete([]byte(userURL + "*IP"))
+	dbBasket.Delete([]byte(userURL + "*Date"))
+	dbBasket.Delete([]byte(userURL + "*LastModified"))
+
+	for i := range userStatuses {
+		rfc := i.Format(time.RFC3339)
+		dbBasket.Delete([]byte(userURL + "*Status*" + rfc))
+	}
+
+	return lvl.db.Write(dbBasket, nil)
+}
+
 // Called intermittently to commit registry data to
 // a LevelDB database.
 func (lvl *dbLevel) push() error {