feat: Added login form module
This commit is contained in:
parent
0cc9df8950
commit
f0c009eac5
4 changed files with 119 additions and 4 deletions
|
@ -2,8 +2,8 @@ package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"git.ddd.rip/ptrcnull/modweb"
|
"git.ddd.rip/ptrcnull/modweb"
|
||||||
discord_login "git.ddd.rip/ptrcnull/modweb/examples/test/discord-login"
|
|
||||||
helloworld "git.ddd.rip/ptrcnull/modweb/examples/test/hello-world"
|
helloworld "git.ddd.rip/ptrcnull/modweb/examples/test/hello-world"
|
||||||
|
auth "git.ddd.rip/ptrcnull/modweb/modules/auth/login_form"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
@ -11,7 +11,12 @@ func main() {
|
||||||
AppName: "Test App",
|
AppName: "Test App",
|
||||||
})
|
})
|
||||||
|
|
||||||
app.Register(&discord_login.Module{})
|
app.Register(&auth.Module{
|
||||||
|
Handler: func(user, pass string) *modweb.User {
|
||||||
|
return nil
|
||||||
|
},
|
||||||
|
})
|
||||||
|
// app.Register(&discord_login.Module{})
|
||||||
app.Register(&helloworld.Module{})
|
app.Register(&helloworld.Module{})
|
||||||
|
|
||||||
err := app.Run(":8011")
|
err := app.Run(":8011")
|
||||||
|
|
71
modules/auth/login_form/main.go
Normal file
71
modules/auth/login_form/main.go
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
package login_form
|
||||||
|
|
||||||
|
import (
|
||||||
|
"git.ddd.rip/ptrcnull/modweb"
|
||||||
|
"git.ddd.rip/ptrcnull/modweb/static"
|
||||||
|
"github.com/gofiber/fiber/v2"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Module struct {
|
||||||
|
Handler func(user string, pass string) *modweb.User
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m Module) LoginURL() string {
|
||||||
|
return "/login/"
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m Module) RegisterURL() string {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m Module) FriendlyName() string {
|
||||||
|
return "Login form"
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m Module) Name() string {
|
||||||
|
return "login"
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *Module) Init(mm *modweb.ModuleManager) {
|
||||||
|
mm.RegisterViews(static.HTTP)
|
||||||
|
app := mm.Fiber()
|
||||||
|
|
||||||
|
app.Get("/", func(ctx *fiber.Ctx) error {
|
||||||
|
if mm.User(ctx) != nil {
|
||||||
|
return ctx.Redirect("/")
|
||||||
|
}
|
||||||
|
return mm.Render(ctx, "partials/login-form", fiber.Map{})
|
||||||
|
})
|
||||||
|
|
||||||
|
app.Post("/", func(ctx *fiber.Ctx) error {
|
||||||
|
session := mm.Session(ctx)
|
||||||
|
defer session.Save()
|
||||||
|
|
||||||
|
if mm.User(ctx) != nil {
|
||||||
|
return ctx.Redirect("/")
|
||||||
|
}
|
||||||
|
var data struct {
|
||||||
|
Username string
|
||||||
|
Password string
|
||||||
|
}
|
||||||
|
err := ctx.BodyParser(&data)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
user := m.Handler(data.Username, data.Password)
|
||||||
|
if user != nil {
|
||||||
|
user.Save(session)
|
||||||
|
}
|
||||||
|
|
||||||
|
return ctx.Redirect("/")
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m Module) Hidden() bool {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m Module) MinAccessLevel() int64 {
|
||||||
|
return -1
|
||||||
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
// Code generated by fileb0x at "2020-11-17 14:52:53.48227984 +0100 CET m=+0.000817080" from config file "b0x.yaml" DO NOT EDIT.
|
// Code generated by fileb0x at "2020-12-23 03:04:23.605898568 +0100 CET m=+0.003792496" from config file "b0x.yaml" DO NOT EDIT.
|
||||||
// modification hash(a2b5de76ae4db1495bdfcdc8ee505a4a.a37039530e23f5be41165838b856aadc)
|
// modification hash(1bf54b21b1c2bf7f833dcdabc435400c.a37039530e23f5be41165838b856aadc)
|
||||||
|
|
||||||
package static
|
package static
|
||||||
|
|
||||||
|
@ -49,6 +49,9 @@ var FileHomepageHTML = []byte("\x3c\x68\x31\x3e\x68\x6f\x6d\x65\x70\x61\x67\x65\
|
||||||
// FileLayoutsMainHTML is "layouts/main.html"
|
// FileLayoutsMainHTML is "layouts/main.html"
|
||||||
var FileLayoutsMainHTML = []byte("\x3c\x21\x64\x6f\x63\x74\x79\x70\x65\x20\x68\x74\x6d\x6c\x3e\x0a\x3c\x68\x74\x6d\x6c\x20\x6c\x61\x6e\x67\x3d\x22\x65\x6e\x22\x3e\x0a\x3c\x68\x65\x61\x64\x3e\x0a\x20\x20\x20\x20\x3c\x6d\x65\x74\x61\x20\x63\x68\x61\x72\x73\x65\x74\x3d\x22\x55\x54\x46\x2d\x38\x22\x3e\x0a\x20\x20\x20\x20\x3c\x6d\x65\x74\x61\x20\x6e\x61\x6d\x65\x3d\x22\x76\x69\x65\x77\x70\x6f\x72\x74\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x74\x65\x6e\x74\x3d\x22\x77\x69\x64\x74\x68\x3d\x64\x65\x76\x69\x63\x65\x2d\x77\x69\x64\x74\x68\x2c\x20\x75\x73\x65\x72\x2d\x73\x63\x61\x6c\x61\x62\x6c\x65\x3d\x6e\x6f\x2c\x20\x69\x6e\x69\x74\x69\x61\x6c\x2d\x73\x63\x61\x6c\x65\x3d\x31\x2e\x30\x2c\x20\x6d\x61\x78\x69\x6d\x75\x6d\x2d\x73\x63\x61\x6c\x65\x3d\x31\x2e\x30\x2c\x20\x6d\x69\x6e\x69\x6d\x75\x6d\x2d\x73\x63\x61\x6c\x65\x3d\x31\x2e\x30\x22\x3e\x0a\x20\x20\x20\x20\x3c\x6d\x65\x74\x61\x20\x68\x74\x74\x70\x2d\x65\x71\x75\x69\x76\x3d\x22\x58\x2d\x55\x41\x2d\x43\x6f\x6d\x70\x61\x74\x69\x62\x6c\x65\x22\x20\x63\x6f\x6e\x74\x65\x6e\x74\x3d\x22\x69\x65\x3d\x65\x64\x67\x65\x22\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x6b\x20\x72\x65\x6c\x3d\x22\x73\x74\x79\x6c\x65\x73\x68\x65\x65\x74\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x72\x65\x66\x3d\x22\x68\x74\x74\x70\x73\x3a\x2f\x2f\x63\x64\x6e\x6a\x73\x2e\x63\x6c\x6f\x75\x64\x66\x6c\x61\x72\x65\x2e\x63\x6f\x6d\x2f\x61\x6a\x61\x78\x2f\x6c\x69\x62\x73\x2f\x62\x75\x6c\x6d\x61\x2f\x30\x2e\x39\x2e\x31\x2f\x63\x73\x73\x2f\x62\x75\x6c\x6d\x61\x2e\x6d\x69\x6e\x2e\x63\x73\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x74\x65\x67\x72\x69\x74\x79\x3d\x22\x73\x68\x61\x35\x31\x32\x2d\x5a\x52\x76\x34\x30\x6c\x6c\x45\x6f\x67\x52\x6d\x6f\x57\x67\x5a\x77\x6e\x73\x71\x6b\x65\x33\x48\x4e\x7a\x4a\x30\x6b\x69\x49\x30\x2b\x70\x63\x4d\x67\x69\x7a\x32\x62\x78\x4f\x36\x45\x77\x31\x44\x56\x42\x74\x57\x6a\x56\x6e\x30\x71\x6a\x72\x58\x64\x54\x33\x2b\x75\x2b\x70\x53\x4e\x33\x36\x67\x4c\x67\x6d\x4a\x69\x69\x51\x33\x63\x51\x74\x79\x7a\x41\x3d\x3d\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x72\x6f\x73\x73\x6f\x72\x69\x67\x69\x6e\x3d\x22\x61\x6e\x6f\x6e\x79\x6d\x6f\x75\x73\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x74\x69\x74\x6c\x65\x3e\x7b\x7b\x20\x2e\x61\x70\x70\x2e\x43\x6f\x6e\x66\x69\x67\x2e\x41\x70\x70\x4e\x61\x6d\x65\x20\x7d\x7d\x7b\x7b\x20\x69\x66\x20\x2e\x74\x69\x74\x6c\x65\x20\x7d\x7d\x20\x7c\x20\x7b\x7b\x20\x2e\x74\x69\x74\x6c\x65\x20\x7d\x7d\x7b\x7b\x20\x65\x6e\x64\x20\x7d\x7d\x3c\x2f\x74\x69\x74\x6c\x65\x3e\x0a\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x3e\x0a\x20\x20\x20\x20\x7b\x7b\x20\x74\x65\x6d\x70\x6c\x61\x74\x65\x20\x22\x70\x61\x72\x74\x69\x61\x6c\x73\x2f\x6e\x61\x76\x62\x61\x72\x22\x20\x2e\x20\x7d\x7d\x0a\x20\x20\x20\x20\x3c\x73\x65\x63\x74\x69\x6f\x6e\x20\x63\x6c\x61\x73\x73\x3d\x22\x73\x65\x63\x74\x69\x6f\x6e\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x22\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7b\x7b\x20\x65\x6d\x62\x65\x64\x20\x7d\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x64\x69\x76\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x73\x65\x63\x74\x69\x6f\x6e\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x0a\x3c\x2f\x68\x74\x6d\x6c\x3e\x0a")
|
var FileLayoutsMainHTML = []byte("\x3c\x21\x64\x6f\x63\x74\x79\x70\x65\x20\x68\x74\x6d\x6c\x3e\x0a\x3c\x68\x74\x6d\x6c\x20\x6c\x61\x6e\x67\x3d\x22\x65\x6e\x22\x3e\x0a\x3c\x68\x65\x61\x64\x3e\x0a\x20\x20\x20\x20\x3c\x6d\x65\x74\x61\x20\x63\x68\x61\x72\x73\x65\x74\x3d\x22\x55\x54\x46\x2d\x38\x22\x3e\x0a\x20\x20\x20\x20\x3c\x6d\x65\x74\x61\x20\x6e\x61\x6d\x65\x3d\x22\x76\x69\x65\x77\x70\x6f\x72\x74\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x6f\x6e\x74\x65\x6e\x74\x3d\x22\x77\x69\x64\x74\x68\x3d\x64\x65\x76\x69\x63\x65\x2d\x77\x69\x64\x74\x68\x2c\x20\x75\x73\x65\x72\x2d\x73\x63\x61\x6c\x61\x62\x6c\x65\x3d\x6e\x6f\x2c\x20\x69\x6e\x69\x74\x69\x61\x6c\x2d\x73\x63\x61\x6c\x65\x3d\x31\x2e\x30\x2c\x20\x6d\x61\x78\x69\x6d\x75\x6d\x2d\x73\x63\x61\x6c\x65\x3d\x31\x2e\x30\x2c\x20\x6d\x69\x6e\x69\x6d\x75\x6d\x2d\x73\x63\x61\x6c\x65\x3d\x31\x2e\x30\x22\x3e\x0a\x20\x20\x20\x20\x3c\x6d\x65\x74\x61\x20\x68\x74\x74\x70\x2d\x65\x71\x75\x69\x76\x3d\x22\x58\x2d\x55\x41\x2d\x43\x6f\x6d\x70\x61\x74\x69\x62\x6c\x65\x22\x20\x63\x6f\x6e\x74\x65\x6e\x74\x3d\x22\x69\x65\x3d\x65\x64\x67\x65\x22\x3e\x0a\x20\x20\x20\x20\x3c\x6c\x69\x6e\x6b\x20\x72\x65\x6c\x3d\x22\x73\x74\x79\x6c\x65\x73\x68\x65\x65\x74\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x68\x72\x65\x66\x3d\x22\x68\x74\x74\x70\x73\x3a\x2f\x2f\x63\x64\x6e\x6a\x73\x2e\x63\x6c\x6f\x75\x64\x66\x6c\x61\x72\x65\x2e\x63\x6f\x6d\x2f\x61\x6a\x61\x78\x2f\x6c\x69\x62\x73\x2f\x62\x75\x6c\x6d\x61\x2f\x30\x2e\x39\x2e\x31\x2f\x63\x73\x73\x2f\x62\x75\x6c\x6d\x61\x2e\x6d\x69\x6e\x2e\x63\x73\x73\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x69\x6e\x74\x65\x67\x72\x69\x74\x79\x3d\x22\x73\x68\x61\x35\x31\x32\x2d\x5a\x52\x76\x34\x30\x6c\x6c\x45\x6f\x67\x52\x6d\x6f\x57\x67\x5a\x77\x6e\x73\x71\x6b\x65\x33\x48\x4e\x7a\x4a\x30\x6b\x69\x49\x30\x2b\x70\x63\x4d\x67\x69\x7a\x32\x62\x78\x4f\x36\x45\x77\x31\x44\x56\x42\x74\x57\x6a\x56\x6e\x30\x71\x6a\x72\x58\x64\x54\x33\x2b\x75\x2b\x70\x53\x4e\x33\x36\x67\x4c\x67\x6d\x4a\x69\x69\x51\x33\x63\x51\x74\x79\x7a\x41\x3d\x3d\x22\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x63\x72\x6f\x73\x73\x6f\x72\x69\x67\x69\x6e\x3d\x22\x61\x6e\x6f\x6e\x79\x6d\x6f\x75\x73\x22\x20\x2f\x3e\x0a\x20\x20\x20\x20\x3c\x74\x69\x74\x6c\x65\x3e\x7b\x7b\x20\x2e\x61\x70\x70\x2e\x43\x6f\x6e\x66\x69\x67\x2e\x41\x70\x70\x4e\x61\x6d\x65\x20\x7d\x7d\x7b\x7b\x20\x69\x66\x20\x2e\x74\x69\x74\x6c\x65\x20\x7d\x7d\x20\x7c\x20\x7b\x7b\x20\x2e\x74\x69\x74\x6c\x65\x20\x7d\x7d\x7b\x7b\x20\x65\x6e\x64\x20\x7d\x7d\x3c\x2f\x74\x69\x74\x6c\x65\x3e\x0a\x3c\x2f\x68\x65\x61\x64\x3e\x0a\x3c\x62\x6f\x64\x79\x3e\x0a\x20\x20\x20\x20\x7b\x7b\x20\x74\x65\x6d\x70\x6c\x61\x74\x65\x20\x22\x70\x61\x72\x74\x69\x61\x6c\x73\x2f\x6e\x61\x76\x62\x61\x72\x22\x20\x2e\x20\x7d\x7d\x0a\x20\x20\x20\x20\x3c\x73\x65\x63\x74\x69\x6f\x6e\x20\x63\x6c\x61\x73\x73\x3d\x22\x73\x65\x63\x74\x69\x6f\x6e\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x22\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7b\x7b\x20\x65\x6d\x62\x65\x64\x20\x7d\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x64\x69\x76\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x73\x65\x63\x74\x69\x6f\x6e\x3e\x0a\x3c\x2f\x62\x6f\x64\x79\x3e\x0a\x3c\x2f\x68\x74\x6d\x6c\x3e\x0a")
|
||||||
|
|
||||||
|
// FilePartialsLoginFormHTML is "partials/login-form.html"
|
||||||
|
var FilePartialsLoginFormHTML = []byte("\x3c\x66\x6f\x72\x6d\x20\x61\x63\x74\x69\x6f\x6e\x3d\x22\x2f\x6c\x6f\x67\x69\x6e\x2f\x22\x20\x6d\x65\x74\x68\x6f\x64\x3d\x22\x50\x4f\x53\x54\x22\x3e\x0a\x20\x20\x20\x20\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x22\x66\x69\x65\x6c\x64\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x6c\x61\x62\x65\x6c\x20\x66\x6f\x72\x3d\x22\x6c\x6f\x67\x69\x6e\x22\x20\x63\x6c\x61\x73\x73\x3d\x22\x6c\x61\x62\x65\x6c\x22\x3e\x55\x73\x65\x72\x6e\x61\x6d\x65\x3c\x2f\x6c\x61\x62\x65\x6c\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x22\x63\x6f\x6e\x74\x72\x6f\x6c\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x69\x6e\x70\x75\x74\x20\x74\x79\x70\x65\x3d\x22\x74\x65\x78\x74\x22\x20\x6e\x61\x6d\x65\x3d\x22\x75\x73\x65\x72\x6e\x61\x6d\x65\x22\x20\x63\x6c\x61\x73\x73\x3d\x22\x69\x6e\x70\x75\x74\x22\x20\x72\x65\x71\x75\x69\x72\x65\x64\x3d\x22\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x64\x69\x76\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x64\x69\x76\x3e\x0a\x20\x20\x20\x20\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x22\x66\x69\x65\x6c\x64\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x6c\x61\x62\x65\x6c\x20\x66\x6f\x72\x3d\x22\x70\x61\x73\x73\x77\x6f\x72\x64\x22\x20\x63\x6c\x61\x73\x73\x3d\x22\x6c\x61\x62\x65\x6c\x22\x3e\x50\x61\x73\x73\x77\x6f\x72\x64\x3c\x2f\x6c\x61\x62\x65\x6c\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x22\x63\x6f\x6e\x74\x72\x6f\x6c\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x69\x6e\x70\x75\x74\x20\x74\x79\x70\x65\x3d\x22\x70\x61\x73\x73\x77\x6f\x72\x64\x22\x20\x6e\x61\x6d\x65\x3d\x22\x70\x61\x73\x73\x77\x6f\x72\x64\x22\x20\x63\x6c\x61\x73\x73\x3d\x22\x69\x6e\x70\x75\x74\x22\x20\x70\x6c\x61\x63\x65\x68\x6f\x6c\x64\x65\x72\x3d\x22\x2a\x2a\x2a\x2a\x2a\x20\x2a\x2a\x2a\x22\x20\x72\x65\x71\x75\x69\x72\x65\x64\x3d\x22\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x64\x69\x76\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x64\x69\x76\x3e\x0a\x20\x20\x20\x20\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x22\x63\x6f\x6e\x74\x72\x6f\x6c\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x69\x6e\x70\x75\x74\x20\x74\x79\x70\x65\x3d\x22\x73\x75\x62\x6d\x69\x74\x22\x20\x63\x6c\x61\x73\x73\x3d\x22\x62\x75\x74\x74\x6f\x6e\x22\x20\x76\x61\x6c\x75\x65\x3d\x22\x4c\x6f\x67\x69\x6e\x22\x3e\x0a\x20\x20\x20\x20\x3c\x2f\x64\x69\x76\x3e\x0a\x3c\x2f\x66\x6f\x72\x6d\x3e\x0a")
|
||||||
|
|
||||||
// FilePartialsNavbarLoginHTML is "partials/navbar-login.html"
|
// FilePartialsNavbarLoginHTML is "partials/navbar-login.html"
|
||||||
var FilePartialsNavbarLoginHTML = []byte("\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x22\x6e\x61\x76\x62\x61\x72\x2d\x65\x6e\x64\x22\x3e\x0a\x20\x20\x20\x20\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x22\x6e\x61\x76\x62\x61\x72\x2d\x69\x74\x65\x6d\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7b\x7b\x20\x69\x66\x20\x2e\x75\x73\x65\x72\x20\x2d\x7d\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x22\x62\x75\x74\x74\x6f\x6e\x73\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x61\x20\x63\x6c\x61\x73\x73\x3d\x22\x62\x75\x74\x74\x6f\x6e\x20\x69\x73\x2d\x6c\x69\x67\x68\x74\x22\x20\x68\x72\x65\x66\x3d\x22\x2f\x6c\x6f\x67\x6f\x75\x74\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x70\x61\x6e\x3e\x4c\x6f\x67\x20\x6f\x75\x74\x20\x3c\x62\x3e\x7b\x7b\x20\x2e\x75\x73\x65\x72\x2e\x44\x69\x73\x70\x6c\x61\x79\x4e\x61\x6d\x65\x20\x7d\x7d\x3c\x2f\x62\x3e\x3c\x2f\x73\x70\x61\x6e\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x61\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x64\x69\x76\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7b\x7b\x2d\x20\x65\x6c\x73\x65\x20\x2d\x7d\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7b\x7b\x20\x69\x66\x20\x65\x71\x20\x28\x6c\x65\x6e\x20\x2e\x61\x75\x74\x68\x29\x20\x31\x20\x2d\x7d\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7b\x7b\x20\x77\x69\x74\x68\x20\x28\x69\x6e\x64\x65\x78\x20\x2e\x61\x75\x74\x68\x20\x30\x29\x20\x2d\x7d\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x22\x62\x75\x74\x74\x6f\x6e\x73\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x61\x20\x63\x6c\x61\x73\x73\x3d\x22\x62\x75\x74\x74\x6f\x6e\x20\x69\x73\x2d\x6c\x69\x67\x68\x74\x22\x20\x68\x72\x65\x66\x3d\x22\x7b\x7b\x20\x2e\x4c\x6f\x67\x69\x6e\x55\x52\x4c\x20\x7d\x7d\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4c\x6f\x67\x20\x69\x6e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x61\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7b\x7b\x20\x69\x66\x20\x2e\x52\x65\x67\x69\x73\x74\x65\x72\x55\x52\x4c\x20\x2d\x7d\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x61\x20\x63\x6c\x61\x73\x73\x3d\x22\x62\x75\x74\x74\x6f\x6e\x20\x69\x73\x2d\x6c\x69\x67\x68\x74\x22\x20\x68\x72\x65\x66\x3d\x22\x7b\x7b\x20\x2e\x52\x65\x67\x69\x73\x74\x65\x72\x55\x52\x4c\x20\x7d\x7d\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x52\x65\x67\x69\x73\x74\x65\x72\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x61\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7b\x7b\x2d\x20\x65\x6e\x64\x20\x7d\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x64\x69\x76\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7b\x7b\x2d\x20\x65\x6e\x64\x20\x7d\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7b\x7b\x2d\x20\x65\x6e\x64\x20\x7d\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7b\x7b\x2d\x20\x65\x6e\x64\x20\x7d\x7d\x0a\x20\x20\x20\x20\x3c\x2f\x64\x69\x76\x3e\x0a\x3c\x2f\x64\x69\x76\x3e\x0a")
|
var FilePartialsNavbarLoginHTML = []byte("\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x22\x6e\x61\x76\x62\x61\x72\x2d\x65\x6e\x64\x22\x3e\x0a\x20\x20\x20\x20\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x22\x6e\x61\x76\x62\x61\x72\x2d\x69\x74\x65\x6d\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7b\x7b\x20\x69\x66\x20\x2e\x75\x73\x65\x72\x20\x2d\x7d\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x22\x62\x75\x74\x74\x6f\x6e\x73\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x61\x20\x63\x6c\x61\x73\x73\x3d\x22\x62\x75\x74\x74\x6f\x6e\x20\x69\x73\x2d\x6c\x69\x67\x68\x74\x22\x20\x68\x72\x65\x66\x3d\x22\x2f\x6c\x6f\x67\x6f\x75\x74\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x73\x70\x61\x6e\x3e\x4c\x6f\x67\x20\x6f\x75\x74\x20\x3c\x62\x3e\x7b\x7b\x20\x2e\x75\x73\x65\x72\x2e\x44\x69\x73\x70\x6c\x61\x79\x4e\x61\x6d\x65\x20\x7d\x7d\x3c\x2f\x62\x3e\x3c\x2f\x73\x70\x61\x6e\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x61\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x64\x69\x76\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7b\x7b\x2d\x20\x65\x6c\x73\x65\x20\x2d\x7d\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7b\x7b\x20\x69\x66\x20\x65\x71\x20\x28\x6c\x65\x6e\x20\x2e\x61\x75\x74\x68\x29\x20\x31\x20\x2d\x7d\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7b\x7b\x20\x77\x69\x74\x68\x20\x28\x69\x6e\x64\x65\x78\x20\x2e\x61\x75\x74\x68\x20\x30\x29\x20\x2d\x7d\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x64\x69\x76\x20\x63\x6c\x61\x73\x73\x3d\x22\x62\x75\x74\x74\x6f\x6e\x73\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x61\x20\x63\x6c\x61\x73\x73\x3d\x22\x62\x75\x74\x74\x6f\x6e\x20\x69\x73\x2d\x6c\x69\x67\x68\x74\x22\x20\x68\x72\x65\x66\x3d\x22\x7b\x7b\x20\x2e\x4c\x6f\x67\x69\x6e\x55\x52\x4c\x20\x7d\x7d\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x4c\x6f\x67\x20\x69\x6e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x61\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7b\x7b\x20\x69\x66\x20\x2e\x52\x65\x67\x69\x73\x74\x65\x72\x55\x52\x4c\x20\x2d\x7d\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x61\x20\x63\x6c\x61\x73\x73\x3d\x22\x62\x75\x74\x74\x6f\x6e\x20\x69\x73\x2d\x6c\x69\x67\x68\x74\x22\x20\x68\x72\x65\x66\x3d\x22\x7b\x7b\x20\x2e\x52\x65\x67\x69\x73\x74\x65\x72\x55\x52\x4c\x20\x7d\x7d\x22\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x52\x65\x67\x69\x73\x74\x65\x72\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x61\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7b\x7b\x2d\x20\x65\x6e\x64\x20\x7d\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x3c\x2f\x64\x69\x76\x3e\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7b\x7b\x2d\x20\x65\x6e\x64\x20\x7d\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x7b\x7b\x2d\x20\x65\x6e\x64\x20\x7d\x7d\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x7b\x7b\x2d\x20\x65\x6e\x64\x20\x7d\x7d\x0a\x20\x20\x20\x20\x3c\x2f\x64\x69\x76\x3e\x0a\x3c\x2f\x64\x69\x76\x3e\x0a")
|
||||||
|
|
||||||
|
@ -135,6 +138,25 @@ func init() {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
f, err = FS.OpenFile(CTX, "partials/login-form.html", os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0777)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
_, err = f.Write(FilePartialsLoginFormHTML)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
err = f.Close()
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
f, err = FS.OpenFile(CTX, "partials/navbar-login.html", os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0777)
|
f, err = FS.OpenFile(CTX, "partials/navbar-login.html", os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0777)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
|
|
17
templates/partials/login-form.html
Normal file
17
templates/partials/login-form.html
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
<form action="/login/" method="POST">
|
||||||
|
<div class="field">
|
||||||
|
<label for="login" class="label">Username</label>
|
||||||
|
<div class="control">
|
||||||
|
<input type="text" name="username" class="input" required="">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="field">
|
||||||
|
<label for="password" class="label">Password</label>
|
||||||
|
<div class="control">
|
||||||
|
<input type="password" name="password" class="input" placeholder="***** ***" required="">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="control">
|
||||||
|
<input type="submit" class="button" value="Login">
|
||||||
|
</div>
|
||||||
|
</form>
|
Loading…
Reference in a new issue