gnunet-gns-registrar

GNU Name System registrar
Log | Files | Refs | README

commit 70cc2629365b9c4fd2fd948eceeb5c6b3c894bad
parent a4b76ce61e3619b593ffd465a669e89bb35a335e
Author: Martin Schanzenbach <schanzen@gnunet.org>
Date:   Mon, 11 Dec 2023 23:05:58 +0100

prettify

Diffstat:
Mpkg/rest/gnsregistrar.go | 18+++++++++++-------
Mweb/templates/buy.html | 4+++-
Mweb/templates/edit.html | 28+++++++++++++++++-----------
Mweb/templates/landing.html | 3+--
Mweb/templates/name.html | 42+++++++++++++++++++++++-------------------
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>