53 lines
1.1 KiB
Go
53 lines
1.1 KiB
Go
package authentication
|
|
|
|
import (
|
|
"ersteller-lib"
|
|
"github.com/labstack/echo/v4"
|
|
"maragu.dev/gomponents"
|
|
. "maragu.dev/gomponents/html"
|
|
)
|
|
|
|
const LoginPath = "/login"
|
|
|
|
type LoginPage struct {
|
|
createPage ersteller_lib.CreatePageFunc
|
|
LoginRoute ersteller_lib.GetRoute
|
|
googleLoginUrl string
|
|
}
|
|
|
|
func NewLoginPage(e *echo.Echo, createPage ersteller_lib.CreatePageFunc, googleLoginUrl string) *LoginPage {
|
|
page := &LoginPage{createPage: createPage, googleLoginUrl: googleLoginUrl}
|
|
page.LoginRoute = ersteller_lib.NewGetRoute(LoginPath, page.Render).Add(e)
|
|
return page
|
|
}
|
|
|
|
func (l *LoginPage) Render(c echo.Context) error {
|
|
return l.createPage(c, ersteller_lib.PageWebsiteMetaData{
|
|
Title: "Login",
|
|
HideNavigation: true,
|
|
}, l.getLoginPage())
|
|
}
|
|
|
|
func (l *LoginPage) getLoginPage() gomponents.Group {
|
|
return []gomponents.Node{
|
|
P(
|
|
A(
|
|
Href(OpenIdConnectPath),
|
|
Button(
|
|
Type("button"),
|
|
gomponents.Text("Login"),
|
|
),
|
|
),
|
|
),
|
|
P(
|
|
A(
|
|
Href(l.googleLoginUrl),
|
|
Button(
|
|
Type("button"),
|
|
gomponents.Text("Google Login"),
|
|
),
|
|
),
|
|
),
|
|
}
|
|
}
|