feat: hide registration button when disabled (#287)

* add allow registration to API Summary

* code gen

* use env for troubleshooting

* disable registration toggle based on backend
This commit is contained in:
Hayden 2023-02-15 08:58:38 -09:00 committed by GitHub
parent dd349aa98e
commit efd7069fe4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 27 additions and 14 deletions

View file

@ -2,6 +2,7 @@ version: "3"
env: env:
HBOX_STORAGE_SQLITE_URL: .data/homebox.db?_fk=1 HBOX_STORAGE_SQLITE_URL: .data/homebox.db?_fk=1
HBOX_OPTIONS_ALLOW_REGISTRATION: true
UNSAFE_DISABLE_PASSWORD_PROJECTION: "yes_i_am_sure" UNSAFE_DISABLE_PASSWORD_PROJECTION: "yes_i_am_sure"
tasks: tasks:
setup: setup:

View file

@ -44,12 +44,13 @@ type (
} }
ApiSummary struct { ApiSummary struct {
Healthy bool `json:"health"` Healthy bool `json:"health"`
Versions []string `json:"versions"` Versions []string `json:"versions"`
Title string `json:"title"` Title string `json:"title"`
Message string `json:"message"` Message string `json:"message"`
Build Build `json:"build"` Build Build `json:"build"`
Demo bool `json:"demo"` Demo bool `json:"demo"`
AllowRegistration bool `json:"allowRegistration"`
} }
) )
@ -82,11 +83,12 @@ func NewControllerV1(svc *services.AllServices, repos *repo.AllRepos, options ..
func (ctrl *V1Controller) HandleBase(ready ReadyFunc, build Build) server.HandlerFunc { func (ctrl *V1Controller) HandleBase(ready ReadyFunc, build Build) server.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) error { return func(w http.ResponseWriter, r *http.Request) error {
return server.Respond(w, http.StatusOK, ApiSummary{ return server.Respond(w, http.StatusOK, ApiSummary{
Healthy: ready(), Healthy: ready(),
Title: "Go API Template", Title: "Go API Template",
Message: "Welcome to the Go API Template Application!", Message: "Welcome to the Go API Template Application!",
Build: build, Build: build,
Demo: ctrl.isDemo, Demo: ctrl.isDemo,
AllowRegistration: ctrl.allowRegistration,
}) })
} }
} }

View file

@ -2425,6 +2425,9 @@ const docTemplate = `{
"v1.ApiSummary": { "v1.ApiSummary": {
"type": "object", "type": "object",
"properties": { "properties": {
"allowRegistration": {
"type": "boolean"
},
"build": { "build": {
"$ref": "#/definitions/v1.Build" "$ref": "#/definitions/v1.Build"
}, },

View file

@ -2417,6 +2417,9 @@
"v1.ApiSummary": { "v1.ApiSummary": {
"type": "object", "type": "object",
"properties": { "properties": {
"allowRegistration": {
"type": "boolean"
},
"build": { "build": {
"$ref": "#/definitions/v1.Build" "$ref": "#/definitions/v1.Build"
}, },

View file

@ -564,6 +564,8 @@ definitions:
type: object type: object
v1.ApiSummary: v1.ApiSummary:
properties: properties:
allowRegistration:
type: boolean
build: build:
$ref: '#/definitions/v1.Build' $ref: '#/definitions/v1.Build'
demo: demo:

View file

@ -335,6 +335,7 @@ export interface ActionAmountResult {
} }
export interface ApiSummary { export interface ApiSummary {
allowRegistration: boolean;
build: Build; build: Build;
demo: boolean; demo: boolean;
health: boolean; health: boolean;

View file

@ -101,7 +101,6 @@
toast.success("Logged in successfully"); toast.success("Logged in successfully");
// @ts-expect-error - expires is either a date or a string, need to figure out store typing
authStore.$patch({ authStore.$patch({
token: data.token, token: data.token,
expires: data.expiresAt, expires: data.expiresAt,
@ -214,11 +213,13 @@
</Transition> </Transition>
<div class="text-center mt-6"> <div class="text-center mt-6">
<button <button
class="text-base-content text-lg hover:bg-primary hover:text-primary-content px-3 py-1 rounded-xl transition-colors duration-200" v-if="status && status.allowRegistration"
class="btn text-base-content text-lg hover:bg-primary hover:text-primary-content transition-colors duration-200"
@click="() => toggleLogin()" @click="() => toggleLogin()"
> >
{{ registerForm ? "Already a User? Login" : "Not a User? Register" }} {{ registerForm ? "Login" : "Register" }}
</button> </button>
<p v-else class="text-base-content italic text-sm">Registration Disabled</p>
</div> </div>
</div> </div>
</div> </div>