package authentication import ( "git.gorlug.de/code/golang/ersteller-lib/ersteller" "github.com/labstack/echo/v4" "maragu.dev/gomponents" . "maragu.dev/gomponents/html" ) const LoginPath = "/login" type LoginPage struct { createPage ersteller.CreatePageFunc LoginRoute ersteller.GetRoute googleLoginUrl string } func NewLoginPage(e *echo.Echo, createPage ersteller.CreatePageFunc, googleLoginUrl string) *LoginPage { page := &LoginPage{createPage: createPage, googleLoginUrl: googleLoginUrl} page.LoginRoute = ersteller.NewGetRoute(LoginPath, page.Render).Add(e) return page } func (l *LoginPage) Render(c echo.Context) error { return l.createPage(c, ersteller.PageWebsiteMetaData{ Title: ersteller.NewI18nText(map[ersteller.Language]string{ ersteller.En: "Login", ersteller.De: "Anmelden", }), HideNavigation: true, }, l.getLoginPage()) } func (l *LoginPage) getLoginPage() gomponents.Group { return []gomponents.Node{ P( A( Href(OpenIdConnectPath), Button( Class("btn btn-primary"), Type("button"), gomponents.Text("Login"), ), ), ), P( A( Href(l.googleLoginUrl), Button( Class("btn btn-primary"), Type("button"), gomponents.Text("Google Login"), ), ), ), } }