You've already forked oauth2-proxy
mirror of
https://github.com/oauth2-proxy/oauth2-proxy.git
synced 2025-11-06 08:59:21 +02:00
Move all pagewriter related code to dedicated pagewriter package
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
package app
|
||||
package pagewriter
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
@@ -1,4 +1,4 @@
|
||||
package app
|
||||
package pagewriter
|
||||
|
||||
import (
|
||||
"errors"
|
||||
@@ -1,29 +1,29 @@
|
||||
package app
|
||||
package pagewriter
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
// PageWriter is an interface for rendering html templates for both sign-in and
|
||||
// Writer is an interface for rendering html templates for both sign-in and
|
||||
// error pages.
|
||||
// It can also be used to write errors for the http.ReverseProxy used in the
|
||||
// upstream package.
|
||||
type PageWriter interface {
|
||||
type Writer interface {
|
||||
WriteSignInPage(rw http.ResponseWriter, redirectURL string)
|
||||
WriteErrorPage(rw http.ResponseWriter, status int, redirectURL string, appError string, messages ...interface{})
|
||||
ProxyErrorHandler(rw http.ResponseWriter, req *http.Request, proxyErr error)
|
||||
}
|
||||
|
||||
// pageWriter implements the PageWriter interface
|
||||
// pageWriter implements the Writer interface
|
||||
type pageWriter struct {
|
||||
*errorPageWriter
|
||||
*signInPageWriter
|
||||
}
|
||||
|
||||
// PageWriterOpts contains all options required to configure the template
|
||||
// Opts contains all options required to configure the template
|
||||
// rendering within OAuth2 Proxy.
|
||||
type PageWriterOpts struct {
|
||||
type Opts struct {
|
||||
// TemplatesPath is the path from which to load custom templates for the sign-in and error pages.
|
||||
TemplatesPath string
|
||||
|
||||
@@ -51,9 +51,9 @@ type PageWriterOpts struct {
|
||||
SignInMessage string
|
||||
}
|
||||
|
||||
// NewPageWriter constructs a PageWriter from the options given to allow
|
||||
// NewWriter constructs a Writer from the options given to allow
|
||||
// rendering of sign-in and error pages.
|
||||
func NewPageWriter(opts PageWriterOpts) (PageWriter, error) {
|
||||
func NewWriter(opts Opts) (Writer, error) {
|
||||
templates, err := loadTemplates(opts.TemplatesPath)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("error loading templates: %v", err)
|
||||
@@ -1,4 +1,4 @@
|
||||
package app
|
||||
package pagewriter
|
||||
|
||||
import (
|
||||
"testing"
|
||||
@@ -1,4 +1,4 @@
|
||||
package app
|
||||
package pagewriter
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
@@ -10,13 +10,13 @@ import (
|
||||
. "github.com/onsi/gomega"
|
||||
)
|
||||
|
||||
var _ = Describe("PageWriter", func() {
|
||||
Context("NewPageWriter", func() {
|
||||
var writer PageWriter
|
||||
var opts PageWriterOpts
|
||||
var _ = Describe("Writer", func() {
|
||||
Context("NewWriter", func() {
|
||||
var writer Writer
|
||||
var opts Opts
|
||||
|
||||
BeforeEach(func() {
|
||||
opts = PageWriterOpts{
|
||||
opts = Opts{
|
||||
TemplatesPath: "",
|
||||
ProxyPrefix: "/prefix",
|
||||
Footer: "<Footer>",
|
||||
@@ -31,7 +31,7 @@ var _ = Describe("PageWriter", func() {
|
||||
Context("With no custom templates", func() {
|
||||
BeforeEach(func() {
|
||||
var err error
|
||||
writer, err = NewPageWriter(opts)
|
||||
writer, err = NewWriter(opts)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
})
|
||||
|
||||
@@ -70,7 +70,7 @@ var _ = Describe("PageWriter", func() {
|
||||
|
||||
opts.TemplatesPath = customDir
|
||||
|
||||
writer, err = NewPageWriter(opts)
|
||||
writer, err = NewWriter(opts)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
})
|
||||
|
||||
@@ -117,7 +117,7 @@ var _ = Describe("PageWriter", func() {
|
||||
})
|
||||
|
||||
It("Should return an error", func() {
|
||||
writer, err := NewPageWriter(opts)
|
||||
writer, err := NewWriter(opts)
|
||||
Expect(err).To(MatchError(ContainSubstring("template: sign_in.html:1: function \"Custom\" not defined")))
|
||||
Expect(writer).To(BeNil())
|
||||
})
|
||||
@@ -1,4 +1,4 @@
|
||||
package app
|
||||
package pagewriter
|
||||
|
||||
import (
|
||||
"html/template"
|
||||
@@ -1,4 +1,4 @@
|
||||
package app
|
||||
package pagewriter
|
||||
|
||||
import (
|
||||
"html/template"
|
||||
@@ -1,4 +1,4 @@
|
||||
package app
|
||||
package pagewriter
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
@@ -1,4 +1,4 @@
|
||||
package app
|
||||
package pagewriter
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
Reference in New Issue
Block a user