-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathauthconfig.go
More file actions
80 lines (64 loc) · 1.62 KB
/
authconfig.go
File metadata and controls
80 lines (64 loc) · 1.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
package authconfig
import (
abclientstate "github.com/volatiletech/authboss-clientstate"
"github.com/volatiletech/authboss/v3"
"github.com/volatiletech/authboss/v3/defaults"
)
type ABOption func(*authboss.Authboss)
func NewAuth(options ...ABOption) (*authboss.Authboss, error) {
ab := authboss.New()
for _, option := range options {
option(ab)
}
return ab, nil
}
func Server(srv authboss.ServerStorer) ABOption {
return func(ab *authboss.Authboss) {
ab.Config.Storage.Server = srv
}
}
func CookieStorer(store abclientstate.CookieStorer) ABOption {
return func(ab *authboss.Authboss) {
ab.Config.Storage.CookieState = store
}
}
func SessionStorer(store abclientstate.SessionStorer) ABOption {
return func(ab *authboss.Authboss) {
ab.Config.Storage.SessionState = store
}
}
func PreserveFields(fields ...string) ABOption {
return func(ab *authboss.Authboss) {
ab.Config.Modules.RegisterPreserveFields = fields
}
}
func MountPath(path string) ABOption {
return func(ab *authboss.Authboss) {
ab.Config.Paths.Mount = path
}
}
func RootURL(url string) ABOption {
return func(ab *authboss.Authboss) {
ab.Config.Paths.RootURL = url
}
}
func ViewRenderer(renderer authboss.Renderer) ABOption {
return func(ab *authboss.Authboss) {
ab.Config.Core.ViewRenderer = renderer
}
}
func SetCoreDefaults(ab *authboss.Authboss) {
defaults.SetCore(&ab.Config, false, false)
}
func CoerceRedirectTo200(ab *authboss.Authboss) {
r, ok := ab.Config.Core.Redirector.(*defaults.Redirector)
if !ok {
return
}
r.CorceRedirectTo200 = true
}
func Init(ab *authboss.Authboss) {
if err := ab.Init(); err != nil {
panic(err)
}
}