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: ersteller_lib.NewI18nText(map[ersteller_lib.Language]string{ ersteller_lib.En: "Login", ersteller_lib.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"), ), ), ), } }