commit 70cc2629365b9c4fd2fd948eceeb5c6b3c894bad
parent a4b76ce61e3619b593ffd465a669e89bb35a335e
Author: Martin Schanzenbach <schanzen@gnunet.org>
Date: Mon, 11 Dec 2023 23:05:58 +0100
prettify
Diffstat:
5 files changed, 55 insertions(+), 40 deletions(-)
diff --git a/pkg/rest/gnsregistrar.go b/pkg/rest/gnsregistrar.go
@@ -247,6 +247,10 @@ func (t *Registrar) createOrUpdateRegistration(nsRecord *NamestoreRecord) (error
return nil
}
+func getEndOfDay(day time.Time) (time.Time) {
+ return time.Date(day.Year(), day.Month(), day.Day(), 23, 59, 59, 0, day.Location())
+}
+
func (t *Registrar) setupRegistrationMetadataBeforePayment(label string, zkey string, orderId string, paymentUntil time.Time, regId string) (error) {
var namestoreRequest NamestoreRecord
var delegationRecord RecordData
@@ -272,7 +276,7 @@ func (t *Registrar) setupRegistrationMetadataBeforePayment(label string, zkey st
OrderID: orderId,
NeedsPaymentUntil: paymentUntil,
RegistrationID: regId,
- Expiration: uint64(time.Now().UnixMicro()),
+ Expiration: uint64(getEndOfDay(time.Now()).UnixMicro()),
}
metadataRecordValue, err := json.Marshal(registrationMetadata)
if nil != err {
@@ -411,8 +415,8 @@ func (t *Registrar) editRegistration(w http.ResponseWriter, r *http.Request) {
value = record.Value
}
}
- registeredUntil := time.UnixMicro(int64(regMetadata.Expiration)).Format(time.UnixDate)
- extendedExpiration := time.UnixMicro(int64(regMetadata.Expiration)).Add(t.RelativeRegistrationExpiration).Format(time.UnixDate)
+ registeredUntil := time.UnixMicro(int64(regMetadata.Expiration)).Format(time.DateTime)
+ extendedExpiration := time.UnixMicro(int64(regMetadata.Expiration)).Add(t.RelativeRegistrationExpiration).Format(time.DateTime)
fullData := map[string]interface{}{
"label": vars["label"],
"zkey": value,
@@ -689,8 +693,8 @@ func (t *Registrar) namePage(w http.ResponseWriter, r *http.Request) {
}
}
if regMetadata != nil {
- if regMetadata.Paid {
- registeredUntil = time.UnixMicro(int64(regMetadata.Expiration)).Format(time.UnixDate)
+ if time.Now().Before(time.UnixMicro(int64(regMetadata.Expiration))) {
+ registeredUntil = time.UnixMicro(int64(regMetadata.Expiration)).Format(time.DateTime)
}
}
fullData := map[string]interface{}{
@@ -762,8 +766,8 @@ func (t *Registrar) Initialize(cfgfile string) {
}
paymentExp := t.Cfg.Section("gns-registrar").Key("payment_required_expiration").MustString("1h")
recordExp := t.Cfg.Section("gns-registrar").Key("relative_delegation_expiration").MustString("24h")
- registrationExp := t.Cfg.Section("gns-registrar").Key("registration_expiration").MustString("120h")
- t.RelativeRegistrationExpiration, _ = time.ParseDuration(registrationExp)
+ registrationExpDays := t.Cfg.Section("gns-registrar").Key("registration_duration_days").MustUint64(5)
+ t.RelativeRegistrationExpiration, _ = time.ParseDuration(fmt.Sprintf("%dh", registrationExpDays * 24))
t.RelativeDelegationExpiration, _ = time.ParseDuration(recordExp)
t.PaymentExpiration, _ = time.ParseDuration(paymentExp)
fmt.Println(t.RelativeDelegationExpiration)
diff --git a/web/templates/buy.html b/web/templates/buy.html
@@ -8,7 +8,7 @@
<title>Buy</title>
</head>
<body>
- <div class ="container text-center">
+ <div class ="container text-center mt-5">
<h1 class="mb-3">To register your name <i class="text-primary">{{.label}}</i>.<i class="text-secondary">{{.suffixHint}}</i> please pay here:</h1>
<a href="{{.payto}}" class="btn btn-success mb-3">Pay with TALER</a><br/>
@@ -17,6 +17,8 @@
<img class="qr" src="{{.qrCode}}"/>
</a><br/>
After you pay with a mobile wallet, please click on the QR code to finalize your registration.
+ <hr/>
+ <a class="btn btn-secondary" href="/">Back</a>
</div>
</body>
</html>
diff --git a/web/templates/edit.html b/web/templates/edit.html
@@ -19,25 +19,31 @@
{{end}}
<div class="container pt-5">
<h1 class="mb-5">Manage registration for <i class="text-primary">{{.label}}</i></h1>
- <form action="/name/{{.label}}/edit" method="post" class="align-items-center">
+ <form action="/name/{{.label}}/edit" method="post" class="align-items-center mb-5">
<div class="row">
<div class="col-lg-12">
- <div class="input-group mb-2">
- <span class="input-group-text" id="reg-prefix"><i class="text-primary">{{.label}}</i>.<i class="text-secondary">{{.suffixHint}}</i>: </span>
- <input type="hidden" value="{{.token}}" name="token">
- <input name="zkey" class="form-control form-control-lg" value="{{.zkey}}" maxlength="63" type="text" placeholder="Enter your zone key here!" required autofocus>
- <input class="btn btn-primary" type="submit" value="Update key">
+ <input type="hidden" value="{{.token}}" name="token">
+ <div class="form-floating mb-3">
+ <input name="zkey" id="zkeyInput" class="form-control" value="{{.zkey}}" maxlength="63" type="text" placeholder="Enter your zone key here!" required autofocus>
+ <label for="zkeyInput">Zone key</label>
</div>
+ <input class="btn btn-primary" type="submit" value="Update zone key">
</div>
</div>
</form>
- <span>Registration valid until: <i>{{.registeredUntil}}</i></span><br/>
- <div class="row mt-5">
- <div class="col-lg-12">
- <a class="btn btn-primary" href="/name/{{.label}}/buy">Extend registration until {{.extendedExpiration}} for {{.cost}}</a>
+ <div class="row mt-1">
+ <div class="col-md-12">
+ <div class="form-floating mb-3">
+ <input disabled="true" id="expInput" class="form-control" value="{{.registeredUntil}}" type="text" required autofocus>
+ <label for="expInput">Registration expires</label>
+ </div>
+ </div>
+ <div class="col-md-12">
+ <a class="btn btn-primary" href="/name/{{.label}}/buy">Extend registration until <b>{{.extendedExpiration}}</b> for <b>{{.cost}}</b></a>
</div>
</div>
- <a class="btn btn-primary mt-5" href="/">Back</a>
+ <hr/>
+ <a class="btn btn-secondary" href="/">Back</a>
</div>
</body>
</html>
diff --git a/web/templates/landing.html b/web/templates/landing.html
@@ -26,8 +26,7 @@
<div class="col-lg-6 offset-lg-3">
<label for="label" class="form-label">Check name availability:</label>
<div class="input-group mb-2">
- <input id="label" name="label" class="form-control form-control-lg text-end" maxlength="63" type="text" aria-describedby="reg-suffix" required autofocus>
- <span class="input-group-text" id="reg-suffix">.{{.suffixHint}}</span>
+ <input id="label" name="label" class="form-control text-center" maxlength="63" type="text" aria-describedby="reg-suffix" required autofocus>
<input class="btn btn-primary" type="submit" value="Check!">
</div>
</div>
diff --git a/web/templates/name.html b/web/templates/name.html
@@ -28,39 +28,43 @@
{{end}}
<div class="container pt-5">
{{if .available}}
- <h1 class="mb-5"><i class="text-primary">{{.label}}</i> is still <span class="text-success">available</span> for registration.</h1>
+ <h1 class="mb-5"><i class="text-primary">{{.label}}</i> is <span class="text-success">available</span> for registration.</h1>
<form action="/name/{{.label}}/buy" method="get" class="align-items-center">
<div class="row">
<div class="col-lg-12">
- <div class="input-group mb-2">
- <span class="input-group-text" id="reg-prefix"><i class="text-primary">{{.label}}</i>.<i class="text-secondary">{{.suffixHint}}</i>: </span>
- <input name="zkey" class="form-control form-control-lg" maxlength="63" type="text" placeholder="Enter your zone key here!" required autofocus>
- <input class="btn btn-primary" type="submit" value="Register for {{.cost}}">
+ <div class="form-floating mb-3">
+ <input name="zkey" id="zkeyInput" class="form-control" maxlength="63" type="text" placeholder="Enter your zone key here!" required autofocus>
+ <label for="zkeyInput">Zone key</label>
</div>
+ <input class="btn btn-primary" type="submit" value="Register for {{.cost}}">
</div>
</div>
</form>
{{else}}
{{if eq .registeredUntil ""}}
- <h1 class="mb-5"><i class="text-primary">{{.label}}</i> is already <span class="text-secondary">reserved</span>!</h1>
+ <h1 class="mb-5"><i class="text-primary">{{.label}}</i> is <span class="text-secondary">reserved</span>!</h1>
{{else}}
- <h1 class="mb-5"><i class="text-primary">{{.label}}</i> is already <span class="text-danger">registered</span>!</h1>
+ <h1 class="mb-5"><i class="text-primary">{{.label}}</i> is <span class="text-danger">taken</span>!</h1>
{{end}}
- <form action="/name/{{.label}}/renew" method="get" class="align-items-center">
- <div class="row">
- <div class="col-lg-12">
- <div class="input-group mb-2 w-75">
- <span class="input-group-text" id="reg-prefix"><i class="text-primary">{{.label}}</i>.<i class="text-secondary">{{.suffixHint}}</i>: </span>
- <input name="label" disabled="{{.modificationAllowed}}" class="form-control form-control-lg" maxlength="63" type="text" placeholder="Enter your zone key here!" value="{{.currentValue}}" required autofocus>
- </div>
+ <div class="row">
+ <div class="col-lg-12">
+ <div class="form-floating mb-3">
+ <input name="zkey" id="zkeyInput" class="form-control" maxlength="63" type="text" value="{{.currentValue}}" disabled="true" required autofocus>
+ <label for="zkeyInput">Zone key</label>
</div>
</div>
- </form>
- {{if ne .registeredUntil ""}}
- <span>Registration valid until: <i>{{.registeredUntil}}</i></span><br/>
- {{end}}
+ </div>
+ <div class="row">
+ <div class="col-lg-12">
+ <div class="form-floating mb-3">
+ <input name="reg" id="regInput" class="form-control" type="text" value="{{.registeredUntil}}" disabled="true" required autofocus>
+ <label for="regInput">Registration expires</label>
+ </div>
+ </div>
+ </div>
{{end}}
- <a class="btn btn-primary mt-5" href="/">Back</a>
+ <hr/>
+ <a class="btn btn-secondary" href="/">Back</a>
</div>
</body>
</html>