Skip to content

Commit f537664

Browse files
committed
Cleanup various sad things.
- Export ModuleAttrMeta so the modules can access it. - Add a couple new events for later use. - Fix a few compile errors. - Prefix err constants with Err.
1 parent b60b667 commit f537664

8 files changed

Lines changed: 35 additions & 14 deletions

File tree

authboss.go

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,16 +42,34 @@ func Init(config *Config) error {
4242
return nil
4343
}
4444

45+
// CurrentUser retrieves the current user from the session and the database.
4546
func CurrentUser(w http.ResponseWriter, r *http.Request) (interface{}, error) {
4647
sessions := cfg.SessionStoreMaker(w, r)
4748
key, ok := sessions.Get(SessionKey)
4849
if !ok {
4950
return nil, nil
5051
}
5152

52-
return cfg.Storer.Get(key, moduleAttrMeta)
53+
ctx, err := ContextFromRequest(r)
54+
if err != nil {
55+
return nil, err
56+
}
57+
58+
err = ctx.LoadUser(key, cfg.Storer)
59+
if err != nil {
60+
return nil, err
61+
}
62+
63+
err = cfg.Callbacks.FireBefore(EventGet, ctx)
64+
if err != nil {
65+
return nil, err
66+
}
67+
68+
return cfg.Storer.Get(key, ModuleAttrMeta)
5369
}
5470

71+
// CurrentUserP retrieves the current user but panics if it's not available for
72+
// any reason.
5573
func CurrentUserP(w http.ResponseWriter, r *http.Request) interface{} {
5674
i, err := CurrentUser(w, r)
5775
if err != nil {

callbacks.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,10 @@ type Event int
77
const (
88
EventRegister Event = iota
99
EventAuth
10+
EventAuthFail
1011
EventRecoverStart
1112
EventRecoverEnd
13+
EventGet
1214
)
1315

1416
// Before callbacks can interrupt the flow by returning an error. This is used to stop
@@ -32,14 +34,14 @@ func NewCallbacks() *Callbacks {
3234
}
3335
}
3436

35-
// Before event, call callback.
37+
// Before event, call f.
3638
func (c *Callbacks) Before(e Event, f Before) {
3739
callbacks := c.before[e]
3840
callbacks = append(callbacks, f)
3941
c.before[e] = callbacks
4042
}
4143

42-
// After event, call callback.
44+
// After event, call f.
4345
func (c *Callbacks) After(e Event, f After) {
4446
callbacks := c.after[e]
4547
callbacks = append(callbacks, f)

context.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ func (c *Context) LoadUser(key string, storer Storer) error {
8787
return nil
8888
}
8989

90-
intf, err := storer.Get(key, moduleAttrMeta)
90+
intf, err := storer.Get(key, ModuleAttrMeta)
9191
if err != nil {
9292
return err
9393
}

module.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package authboss
22

33
var modules = make(map[string]Modularizer)
44

5-
var moduleAttrMeta = make(AttributeMeta)
5+
var ModuleAttrMeta = make(AttributeMeta)
66

77
// Modularizer should be implemented by all the authboss modules.
88
type Modularizer interface {
@@ -17,7 +17,7 @@ func RegisterModule(name string, m Modularizer) {
1717
modules[name] = m
1818

1919
for k, v := range m.Storage() {
20-
moduleAttrMeta[k] = v
20+
ModuleAttrMeta[k] = v
2121
}
2222
}
2323

remember/remember.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ func (r *Remember) Auth(
144144
sum := md5.Sum(token)
145145

146146
key, err := r.storer.UseToken(string(givenKey), base64.StdEncoding.EncodeToString(sum[:]))
147-
if err == authboss.TokenNotFound {
147+
if err == authboss.ErrTokenNotFound {
148148
return "", nil
149149
} else if err != nil {
150150
return "", err

remember/remember_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ func (t *testTokenStorer) UseToken(givenKey, token string) (key string, err erro
5555
t.token = ""
5656
return ret, nil
5757
}
58-
return "", authboss.TokenNotFound
58+
return "", authboss.ErrTokenNotFound
5959
}
6060

6161
func TestInitialize(t *testing.T) {

storer.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,12 @@ import (
99
"unicode"
1010
)
1111

12-
// UserNotFound should be returned from Get when the record is not found.
13-
var UserNotFound = errors.New("User not found")
14-
15-
// TokenNotFound should be returned from UseToken when the record is not found.
16-
var TokenNotFound = errors.New("Token not found")
12+
var (
13+
// UserNotFound should be returned from Get when the record is not found.
14+
ErrUserNotFound = errors.New("User not found")
15+
// TokenNotFound should be returned from UseToken when the record is not found.
16+
ErrTokenNotFound = errors.New("Token not found")
17+
)
1718

1819
// StorageOptions is a map depicting the things a module must be able to store.
1920
type StorageOptions map[string]DataType

validate/rules.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ func (r Rules) Errors(toValidate string) authboss.ErrorList {
3131
ln := len(toValidate)
3232
if ln == 0 {
3333
errs = append(errs, authboss.FieldError{r.Field, errors.New("Cannot be blank")})
34-
return err
34+
return errs
3535
}
3636

3737
if r.MustMatch != nil {

0 commit comments

Comments
 (0)