gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-taldir] branch master updated (2378b26 -> b2f1a3a)


From: gnunet
Subject: [taler-taldir] branch master updated (2378b26 -> b2f1a3a)
Date: Thu, 07 Jul 2022 21:36:04 +0200

This is an automated email from the git hooks/post-receive script.

martin-schanzenbach pushed a change to branch master
in repository taldir.

    from 2378b26  bugfix
     new 1b60938  refactoring
     new b2f1a3a  allow removal of validations and entries via CLI

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 Makefile                                    |  4 +--
 cmd/taldir-cli/main.go                      | 43 ++++++++++++++++++++++++++++-
 cmd/taldir-server/main.go                   | 24 ++--------------
 cmd/taldir-server/main_test.go              |  9 +++---
 go.mod                                      |  2 +-
 {cmd/taldir-server => pkg/taldir}/taldir.go | 40 +++++++++++++++++++++------
 {util => pkg/util}/base32.go                |  0
 {util => pkg/util}/helper.go                |  0
 8 files changed, 85 insertions(+), 37 deletions(-)
 rename {cmd/taldir-server => pkg/taldir}/taldir.go (96%)
 rename {util => pkg/util}/base32.go (100%)
 rename {util => pkg/util}/helper.go (100%)

diff --git a/Makefile b/Makefile
index 25f0f78..0f39e2a 100644
--- a/Makefile
+++ b/Makefile
@@ -3,11 +3,11 @@ all: gana server cli
 SCRIPT_TARGET:=$(shell dirname $(shell go list -f '{{.Target}}' 
./cmd/taldir-server))
 
 gana:
-       mkdir -p gana
+       mkdir -p pkg/gana
        git submodule update --init --recursive
        git submodule sync --recursive
        cd contrib/gana/gnu-taler-error-codes && make taler_error_codes.go
-       cp contrib/gana/gnu-taler-error-codes/taler_error_codes.go gana/
+       cp contrib/gana/gnu-taler-error-codes/taler_error_codes.go pkg/gana/
 
 server:
        go build ./cmd/taldir-server
diff --git a/cmd/taldir-cli/main.go b/cmd/taldir-cli/main.go
index 5ab95b2..0bc3cd9 100644
--- a/cmd/taldir-cli/main.go
+++ b/cmd/taldir-cli/main.go
@@ -23,7 +23,10 @@ import (
   "os"
   "fmt"
   "flag"
-  "taler.net/taldir/util"
+  "bufio"
+  "log"
+  "taler.net/taldir/pkg/taldir"
+  "taler.net/taldir/pkg/util"
   "crypto/sha512"
 )
 
@@ -41,6 +44,11 @@ func main() {
   var codeFlag = flag.String("c", "", "Activation code")
   var pubkeyFlag = flag.String("p", "", "Public key")
   var addressFlag = flag.String("a", "", "Address")
+  var delEntryFlag = flag.Bool("d", false, "Delete Entry for the specificied 
address")
+  var delValidationFlag = flag.Bool("V", false, "Delete validation for the 
specificied address")
+
+  var dropFlag = flag.Bool("D", false, "Drop all data in table (DANGEROUS!)")
+  var cfgFlag = flag.String("C", "", "Configuration file to use")
   flag.Parse()
   if *solveFlag {
     if len(*codeFlag) == 0 || len(*pubkeyFlag) == 0 {
@@ -58,4 +66,37 @@ func main() {
     fmt.Println(generateLink(*addressFlag, *codeFlag))
     os.Exit(0)
   }
+  cfgfile := "taldir.conf"
+  if len(*cfgFlag) != 0 {
+    cfgfile = *cfgFlag
+  }
+  t := taldir.Taldir{}
+  t.Initialize(cfgfile)
+  if *dropFlag {
+    fmt.Println("Really delete all data in database? [y/N]:")
+    reader := bufio.NewReader(os.Stdin)
+    char, _, err := reader.ReadRune()
+
+    if err == nil {
+      fmt.Println(char)
+      if char == 'y' {
+        t.ClearDatabase()
+      }
+      os.Exit(0)
+    }
+    os.Exit(1)
+  }
+  if *delEntryFlag {
+    if len(*addressFlag) == 0 {
+      log.Fatal("No address provided!")
+    }
+    t.DeleteEntry(*addressFlag)
+  }
+  if *delValidationFlag {
+    if len(*addressFlag) == 0 {
+      log.Fatal("No address provided!")
+    }
+    t.DeleteValidation(*addressFlag)
+  }
+
 }
diff --git a/cmd/taldir-server/main.go b/cmd/taldir-server/main.go
index 1fe4565..6b9261e 100644
--- a/cmd/taldir-server/main.go
+++ b/cmd/taldir-server/main.go
@@ -28,36 +28,18 @@ package main
 */
 
 import (
-  "os"
-  "fmt"
-  "bufio"
   "flag"
+  "taler.net/taldir/pkg/taldir"
 )
 
 func main() {
-  var dropFlag = flag.Bool("D", false, "Drop all data in table (DANGEROUS!)")
   var cfgFlag = flag.String("c", "", "Configuration file to use")
   flag.Parse()
   cfgfile := "taldir.conf"
   if len(*cfgFlag) != 0 {
     cfgfile = *cfgFlag
   }
-  t := Taldir{}
-  clearDb := false
-  if *dropFlag {
-    fmt.Println("Really delete all data in database? [y/N]:")
-    reader := bufio.NewReader(os.Stdin)
-    char, _, err := reader.ReadRune()
-
-    if err == nil {
-      fmt.Println(char)
-      if char == 'y' {
-        clearDb = true
-      }
-      os.Exit(0)
-    }
-    os.Exit(1)
-  }
-  t.Initialize(cfgfile, clearDb)
+  t := taldir.Taldir{}
+  t.Initialize(cfgfile)
   t.Run()
 }
diff --git a/cmd/taldir-server/main_test.go b/cmd/taldir-server/main_test.go
index 027e574..fd54292 100644
--- a/cmd/taldir-server/main_test.go
+++ b/cmd/taldir-server/main_test.go
@@ -29,11 +29,12 @@ import (
   "strings"
   "io/ioutil"
   "log"
-  "taler.net/taldir/cmd/taldir-server"
-  "taler.net/taldir/util"
+  "taler.net/taldir/pkg/taldir"
+  _ "taler.net/taldir/cmd/taldir-server"
+  "taler.net/taldir/pkg/util"
 )
 
-var t main.Taldir
+var t taldir.Taldir
 
 var validRegisterRequest = []byte(`
   {
@@ -55,7 +56,7 @@ var validRegisterRequestShort = []byte(`
 
 
 func TestMain(m *testing.M) {
-  t.Initialize("testdata/taldir-test.conf", true)
+  t.Initialize("testdata/taldir-test.conf")
   code := m.Run()
   t.ClearDatabase()
   os.Exit(code)
diff --git a/go.mod b/go.mod
index 205e81d..b5dfeef 100644
--- a/go.mod
+++ b/go.mod
@@ -9,7 +9,7 @@ require (
        github.com/jinzhu/now v1.1.5 // indirect
        github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e
        golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4 // indirect
-       golang.org/x/text v0.3.7 // indirect
+       golang.org/x/text v0.3.7
        gopkg.in/ini.v1 v1.66.4
        gopkg.in/jcmturner/aescts.v1 v1.0.1 // indirect
        gopkg.in/jcmturner/dnsutils.v1 v1.0.1 // indirect
diff --git a/cmd/taldir-server/taldir.go b/pkg/taldir/taldir.go
similarity index 96%
rename from cmd/taldir-server/taldir.go
rename to pkg/taldir/taldir.go
index 74973be..57a71b5 100644
--- a/cmd/taldir-server/taldir.go
+++ b/pkg/taldir/taldir.go
@@ -16,8 +16,7 @@
 //
 // SPDX-License-Identifier: AGPL3.0-or-later
 
-
-package main
+package taldir
 
 /* TODO
  - ToS API (terms, privacy) with localizions
@@ -43,8 +42,8 @@ import (
   "github.com/gorilla/mux"
   "gorm.io/gorm"
   "encoding/base64"
-  "taler.net/taldir/util"
-  "taler.net/taldir/gana"
+  "taler.net/taldir/pkg/util"
+  "taler.net/taldir/pkg/gana"
   "crypto/sha512"
   "gorm.io/driver/postgres"
   "gopkg.in/ini.v1"
@@ -466,6 +465,34 @@ func (t *Taldir) validationPage(w http.ResponseWriter, r 
*http.Request) {
   return
 }
 
+func (t *Taldir) DeleteValidation(addr string) error {
+
+  var validation Validation
+  h := sha512.New()
+  h.Write([]byte(addr))
+  h_addr := util.EncodeBinaryToString(h.Sum(nil))
+  err := t.Db.First(&validation, "h_address = ?", h_addr).Error
+  if nil == err {
+    err = t.Db.Delete(&validation).Error
+  }
+  return err
+}
+
+
+func (t *Taldir) DeleteEntry(addr string) error {
+
+  var entry Entry
+   h := sha512.New()
+  h.Write([]byte(addr))
+  h_addr := util.EncodeBinaryToString(h.Sum(nil))
+  hs_address := saltHAddress(h_addr, t.Salt)
+  err := t.Db.First(&entry, "hs_address = ?", hs_address).Error
+  if nil == err {
+    err = t.Db.Delete(&entry).Error
+  }
+  return err
+}
+
 func (t *Taldir) ClearDatabase() {
   t.Db.Where("1 = 1").Delete(&Entry{})
   t.Db.Where("1 = 1").Delete(&Validation{})
@@ -579,7 +606,7 @@ func (t *Taldir) handleRequests() {
   
log.Fatal(http.ListenAndServe(t.Cfg.Section("taldir").Key("bind_to").MustString("localhost:11000"),
 t.Router))
 }
 
-func (t *Taldir) Initialize(cfgfile string, clearDb bool) {
+func (t *Taldir) Initialize(cfgfile string) {
   _cfg, err := ini.Load(cfgfile)
   if err != nil {
     fmt.Printf("Failed to read config: %v", err)
@@ -612,9 +639,6 @@ func (t *Taldir) Initialize(cfgfile string, clearDb bool) {
   if err := t.Db.AutoMigrate(&Validation{}); err != nil {
     panic(err)
   }
-  if clearDb {
-    t.ClearDatabase()
-  }
 
   validationLandingTplFile := 
t.Cfg.Section("taldir").Key("validation_landing").MustString("templates/validation_landing.html")
   t.ValidationTpl, err = template.ParseFiles(validationLandingTplFile)
diff --git a/util/base32.go b/pkg/util/base32.go
similarity index 100%
rename from util/base32.go
rename to pkg/util/base32.go
diff --git a/util/helper.go b/pkg/util/helper.go
similarity index 100%
rename from util/helper.go
rename to pkg/util/helper.go

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]