mirror of
https://github.com/muety/wakapi.git
synced 2023-08-10 21:12:56 +03:00
feat: add basic sign up instructions
This commit is contained in:
parent
2cca2cb0bb
commit
625994d1e9
@ -16,6 +16,7 @@ var cfg *Config
|
||||
|
||||
type Config struct {
|
||||
Env string
|
||||
Version string
|
||||
Port int
|
||||
Addr string
|
||||
BasePath string
|
||||
@ -56,11 +57,28 @@ func LookupFatal(key string) string {
|
||||
return v
|
||||
}
|
||||
|
||||
func readVersion() string {
|
||||
file, err := os.Open("version.txt")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer file.Close()
|
||||
|
||||
bytes, err := ioutil.ReadAll(file)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
return string(bytes)
|
||||
}
|
||||
|
||||
func readConfig() *Config {
|
||||
if err := godotenv.Load(); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
version := readVersion()
|
||||
|
||||
env := LookupFatal("ENV")
|
||||
dbType := LookupFatal("WAKAPI_DB_TYPE")
|
||||
dbUser := LookupFatal("WAKAPI_DB_USER")
|
||||
@ -131,6 +149,7 @@ func readConfig() *Config {
|
||||
|
||||
return &Config{
|
||||
Env: env,
|
||||
Version: version,
|
||||
Port: port,
|
||||
Addr: addr,
|
||||
BasePath: basePath,
|
||||
|
@ -16,3 +16,9 @@ type Signup struct {
|
||||
Password string `schema:"password"`
|
||||
PasswordRepeat string `schema:"password_repeat"`
|
||||
}
|
||||
|
||||
func (s *Signup) IsValid() bool {
|
||||
return len(s.Username) >= 3 &&
|
||||
len(s.Password) >= 6 &&
|
||||
s.Password == s.PasswordRepeat
|
||||
}
|
||||
|
@ -164,8 +164,8 @@ func (h *IndexHandler) handlePostSignup(w http.ResponseWriter, r *http.Request)
|
||||
return
|
||||
}
|
||||
|
||||
if signup.Password != signup.PasswordRepeat {
|
||||
respondAlert(w, "passwords do not match", "", "signup.tpl.html", http.StatusBadRequest)
|
||||
if !signup.IsValid() {
|
||||
respondAlert(w, "invalid parameters", "", "signup.tpl.html", http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -27,6 +27,9 @@ func loadTemplates() {
|
||||
"getBasePath": func() string {
|
||||
return models.GetConfig().BasePath
|
||||
},
|
||||
"getVersion": func() string {
|
||||
return models.GetConfig().Version
|
||||
},
|
||||
})
|
||||
templates = make(map[string]*template.Template)
|
||||
|
||||
|
@ -1 +1 @@
|
||||
1.4.0
|
||||
1.4.1
|
@ -1,3 +1,11 @@
|
||||
<footer class="w-full text-center text-gray-300 text-xs mt-12">
|
||||
Made by <a href="https://muetsch.io" class="border-b border-green-700">Ferdinand Mütsch</a> as <a href="https://github.com/muety/wakapi" class="border-b border-green-700">open-source</a>.
|
||||
<footer class="flex justify-between w-full text-center text-gray-500 text-xs mt-12">
|
||||
<div class="text-xs font-mono">
|
||||
v{{ getVersion }}
|
||||
</div>
|
||||
<div>
|
||||
Made with 🤍 by <a href="https://muetsch.io" class="border-b border-green-700">Ferdinand Mütsch</a> as <a
|
||||
href="https://github.com/muety/wakapi" class="border-b border-green-700">open-source</a> software
|
||||
</div>
|
||||
<div>
|
||||
</div>
|
||||
</footer>
|
@ -16,13 +16,13 @@
|
||||
<label class="inline-block text-sm mb-1 text-gray-500" for="username">Username</label>
|
||||
<input class="shadow appearance-none bg-gray-800 focus:bg-gray-700 text-gray-300 border-green-700 focus:border-gray-500 border rounded w-full py-1 px-3"
|
||||
type="text" id="username"
|
||||
name="username" placeholder="Enter your username" required>
|
||||
name="username" placeholder="Enter your username" minlength="3" required autofocus>
|
||||
</div>
|
||||
<div class="mb-8">
|
||||
<label class="inline-block text-sm mb-1 text-gray-500" for="password">Password</label>
|
||||
<input class="shadow appearance-none bg-gray-800 focus:bg-gray-700 text-gray-300 border-green-700 focus:border-gray-500 border rounded w-full py-1 px-3"
|
||||
type="password" id="password"
|
||||
name="password" placeholder="******" required>
|
||||
name="password" placeholder="******" minlength="6" required>
|
||||
</div>
|
||||
<div class="flex justify-between">
|
||||
<a href="signup">
|
||||
|
@ -10,22 +10,31 @@
|
||||
{{ template "alerts.tpl.html" . }}
|
||||
|
||||
<main class="mt-10 flex-grow flex justify-center w-full" id="grid-container">
|
||||
<div class="flex-grow max-w-lg mt-12">
|
||||
<form action="signup" method="post">
|
||||
<div class="flex-grow max-w-lg mt-8">
|
||||
<div>
|
||||
<p class="text-sm text-gray-300">
|
||||
💡 In order to use Wakapi, you need to create an account.
|
||||
After successful signup, you still need to set up the <a href="https://wakatime.com" target="_blank" class="border-b border-green-700">WakaTime</a> client tools.
|
||||
Please refer to <a href="https://github.com/muety/wakapi#client-setup" target="_blank" class="border-b border-green-700">this readme section</a> for instructions.
|
||||
You will be able to view you <strong>API Key</strong> once you log in.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<form class="mt-10" action="signup" method="post">
|
||||
<div class="mb-8">
|
||||
<label class="inline-block text-sm mb-1 text-gray-500" for="username">Username</label>
|
||||
<input class="shadow appearance-none bg-gray-800 focus:bg-gray-700 text-gray-300 border-green-700 focus:border-gray-500 border rounded w-full py-1 px-3" type="text" id="username"
|
||||
name="username" placeholder="Choose a username" required>
|
||||
name="username" placeholder="Choose a username" minlength="3" required autofocus>
|
||||
</div>
|
||||
<div class="mb-8">
|
||||
<label class="inline-block text-sm mb-1 text-gray-500" for="password">Password</label>
|
||||
<input class="shadow appearance-none bg-gray-800 focus:bg-gray-700 text-gray-300 border-green-700 focus:border-gray-500 border rounded w-full py-1 px-3" type="password" id="password"
|
||||
name="password" placeholder="Choose a password" required>
|
||||
name="password" placeholder="Choose a password" minlength="6" required>
|
||||
</div>
|
||||
<div class="mb-8">
|
||||
<label class="inline-block text-sm mb-1 text-gray-500" for="password">And again ...</label>
|
||||
<input class="shadow appearance-none bg-gray-800 focus:bg-gray-700 text-gray-300 border-green-700 focus:border-gray-500 border rounded w-full py-1 px-3" type="password" id="password_repeat"
|
||||
name="password_repeat" placeholder="Repeat your password" required>
|
||||
name="password_repeat" placeholder="Repeat your password" minlength="6" required>
|
||||
</div>
|
||||
<div class="flex justify-between float-right">
|
||||
<button type="submit" class="py-1 px-3 rounded bg-green-700 hover:bg-green-800 text-white text-sm">Create Account</button>
|
||||
|
Loading…
Reference in New Issue
Block a user