diff options
-rw-r--r-- | src/cracha.go | 152 | ||||
-rw-r--r-- | tests/cracha.go | 58 |
2 files changed, 105 insertions, 105 deletions
diff --git a/src/cracha.go b/src/cracha.go index df92704..c162e96 100644 --- a/src/cracha.go +++ b/src/cracha.go @@ -13,7 +13,7 @@ import ( "fiinha" "golite" - "guuid" + "uuid" "scrypt" g "gobang" ) @@ -61,26 +61,26 @@ type queryT struct{ } type queriesT struct{ - register func(guuid.UUID, string, []byte, []byte) (userT, error) - sendToken func(guuid.UUID, string) error - confirm func(string, guuid.UUID) (sessionT, error) + register func(uuid.UUID, string, []byte, []byte) (userT, error) + sendToken func(uuid.UUID, string) error + confirm func(string, uuid.UUID) (sessionT, error) byEmail func(string) (userT, error) - userByUUID func(guuid.UUID) (userT, error) - login func(guuid.UUID, guuid.UUID) (sessionT, error) - refresh func(guuid.UUID, guuid.UUID) (sessionT, error) - reset func(int64, []byte, guuid.UUID) (sessionT, error) - change func(guuid.UUID, []byte) (sessionT, error) - byUUID func(guuid.UUID) (sessionT, error) - logout func(guuid.UUID) error - outOthers func(guuid.UUID) error - outAll func(guuid.UUID) error + userByUUID func(uuid.UUID) (userT, error) + login func(uuid.UUID, uuid.UUID) (sessionT, error) + refresh func(uuid.UUID, uuid.UUID) (sessionT, error) + reset func(int64, []byte, uuid.UUID) (sessionT, error) + change func(uuid.UUID, []byte) (sessionT, error) + byUUID func(uuid.UUID) (sessionT, error) + logout func(uuid.UUID) error + outOthers func(uuid.UUID) error + outAll func(uuid.UUID) error close func() error } type userT struct{ id int64 timestamp time.Time - uuid guuid.UUID + uuid uuid.UUID email string salt []byte pwhash []byte @@ -88,20 +88,20 @@ type userT struct{ } type User struct{ - UUID guuid.UUID + UUID uuid.UUID Confirmed bool } type sessionT struct{ id int64 timestamp time.Time - uuid guuid.UUID - userID guuid.UUID + uuid uuid.UUID + userID uuid.UUID revoked_at *time.Time } type Session struct{ - UUID guuid.UUID + UUID uuid.UUID } type consumerT struct{ @@ -124,8 +124,8 @@ type IAuth interface{ LoginEmail(string, string) (Session, error) ForgotPassword(string) error Refresh(Session) (Session, error) - ResetPassword(guuid.UUID, string, string) (Session, error) - ChangePassword(guuid.UUID, string, string, string) (Session, error) + ResetPassword(uuid.UUID, string, string) (Session, error) + ChangePassword(uuid.UUID, string, string, string) (Session, error) Logout(Session) error LogoutOthers(Session) error LogoutAll(Session) error @@ -367,7 +367,7 @@ func registerSQL(prefix string) queryT { func registerStmt( cfg dbconfigT, ) ( - func(guuid.UUID, string, []byte, []byte) (userT, error), + func(uuid.UUID, string, []byte, []byte) (userT, error), func() error, error, ) { @@ -384,7 +384,7 @@ func registerStmt( } fn := func( - userID guuid.UUID, + userID uuid.UUID, email string, salt []byte, pwhash []byte, @@ -439,7 +439,7 @@ func sendTokenSQL(prefix string) queryT { func sendTokenStmt( cfg dbconfigT, -) (func(guuid.UUID, string) error, func() error, error) { +) (func(uuid.UUID, string) error, func() error, error) { q := sendTokenSQL(cfg.prefix) writeStmt, err := cfg.shared.Prepare(q.write) @@ -447,7 +447,7 @@ func sendTokenStmt( return nil, nil, err } - fn := func(userID guuid.UUID, token string) error { + fn := func(userID uuid.UUID, token string) error { user_id_bytes := userID[:] _, err := writeStmt.Exec(user_id_bytes, token) return err @@ -493,7 +493,7 @@ func confirmSQL(prefix string) queryT { func confirmStmt( cfg dbconfigT, -) (func(string, guuid.UUID) (sessionT, error), func() error, error) { +) (func(string, uuid.UUID) (sessionT, error), func() error, error) { q := confirmSQL(cfg.prefix) writeStmt, err := cfg.shared.Prepare(q.write) @@ -515,7 +515,7 @@ func confirmStmt( ) } - fn := func(token string, sessionID guuid.UUID) (sessionT, error) { + fn := func(token string, sessionID uuid.UUID) (sessionT, error) { session := sessionT{ uuid: sessionID, } @@ -533,7 +533,7 @@ func confirmStmt( if err != nil { return sessionT{}, err } - session.userID = guuid.UUID(user_id_bytes) + session.userID = uuid.UUID(user_id_bytes) _, err = writeStmt.Exec(user_id, attempt_id) if err != nil { @@ -619,7 +619,7 @@ func byEmailStmt( if err != nil { return userT{}, err } - user.uuid = guuid.UUID(user_id_bytes) + user.uuid = uuid.UUID(user_id_bytes) user.timestamp, err = time.Parse(time.RFC3339Nano,timestr) if err != nil { @@ -654,7 +654,7 @@ func userByUUIDSQL(prefix string) queryT { func userByUUIDStmt( cfg dbconfigT, -) (func(guuid.UUID) (userT, error), func() error, error) { +) (func(uuid.UUID) (userT, error), func() error, error) { q := userByUUIDSQL(cfg.prefix) readStmt, err := cfg.shared.Prepare(q.read) @@ -662,7 +662,7 @@ func userByUUIDStmt( return nil, nil, err } - fn := func(userID guuid.UUID) (userT, error) { + fn := func(userID uuid.UUID) (userT, error) { user := userT{ uuid: userID, } @@ -706,7 +706,7 @@ func loginSQL(prefix string) queryT { func loginStmt( cfg dbconfigT, -) (func(guuid.UUID, guuid.UUID) (sessionT, error), func() error, error) { +) (func(uuid.UUID, uuid.UUID) (sessionT, error), func() error, error) { q := loginSQL(cfg.prefix) sessionStmt, err := cfg.shared.Prepare(q.session) @@ -714,7 +714,7 @@ func loginStmt( return nil, nil, err } - fn := func(userID guuid.UUID, sessionID guuid.UUID) (sessionT, error) { + fn := func(userID uuid.UUID, sessionID uuid.UUID) (sessionT, error) { session := sessionT{ uuid: sessionID, userID: userID, @@ -775,7 +775,7 @@ func refreshSQL(prefix string) queryT { func refreshStmt( cfg dbconfigT, -) (func(guuid.UUID, guuid.UUID) (sessionT, error), func() error, error) { +) (func(uuid.UUID, uuid.UUID) (sessionT, error), func() error, error) { q := refreshSQL(cfg.prefix) writeStmt, err := cfg.shared.Prepare(q.write) @@ -784,8 +784,8 @@ func refreshStmt( } fn := func( - sessionID guuid.UUID, - newSessionID guuid.UUID, + sessionID uuid.UUID, + newSessionID uuid.UUID, ) (sessionT, error) { session := sessionT{ uuid: newSessionID, @@ -805,7 +805,7 @@ func refreshStmt( if err != nil { return sessionT{}, err } - session.userID = guuid.UUID(user_id_bytes) + session.userID = uuid.UUID(user_id_bytes) session.timestamp, err = time.Parse(time.RFC3339Nano, timestr) if err != nil { @@ -829,7 +829,7 @@ func resetSQL(prefix string) queryT { func resetStmt( cfg dbconfigT, -) (func(int64, []byte, guuid.UUID) (sessionT, error), func() error, error) { +) (func(int64, []byte, uuid.UUID) (sessionT, error), func() error, error) { q := resetSQL(cfg.prefix) writeStmt, err := cfg.shared.Prepare(q.write) @@ -837,7 +837,7 @@ func resetStmt( return nil, nil, err } - fn := func(id int64, pwhash []byte, token guuid.UUID) (sessionT, error) { + fn := func(id int64, pwhash []byte, token uuid.UUID) (sessionT, error) { var session sessionT err := writeStmt.QueryRow(id, pwhash, token).Scan(&session) if err != nil { @@ -860,7 +860,7 @@ func changeSQL(prefix string) queryT { func changeStmt( cfg dbconfigT, -) (func(guuid.UUID, []byte) (sessionT, error), func() error, error) { +) (func(uuid.UUID, []byte) (sessionT, error), func() error, error) { q := changeSQL(cfg.prefix) writeStmt, err := cfg.shared.Prepare(q.write) @@ -868,7 +868,7 @@ func changeStmt( return nil, nil, err } - fn := func(uuid guuid.UUID, pwhash []byte) (sessionT, error) { + fn := func(uuid uuid.UUID, pwhash []byte) (sessionT, error) { var session sessionT err := writeStmt.QueryRow(uuid, pwhash).Scan(&session) if err != nil { @@ -891,7 +891,7 @@ func byUUIDSQL(prefix string) queryT { func byUUIDStmt( cfg dbconfigT, -) (func(guuid.UUID) (sessionT, error), func() error, error) { +) (func(uuid.UUID) (sessionT, error), func() error, error) { q := byUUIDSQL(cfg.prefix) readStmt, err := cfg.shared.Prepare(q.read) @@ -899,7 +899,7 @@ func byUUIDStmt( return nil, nil, err } - fn := func(sessionID guuid.UUID) (sessionT, error) { + fn := func(sessionID uuid.UUID) (sessionT, error) { var session sessionT err := readStmt.QueryRow(sessionID).Scan(&session) if err != nil { @@ -922,7 +922,7 @@ func logoutSQL(prefix string) queryT { func logoutStmt( cfg dbconfigT, -) (func(guuid.UUID) error, func() error, error) { +) (func(uuid.UUID) error, func() error, error) { q := logoutSQL(cfg.prefix) writeStmt, err := cfg.shared.Prepare(q.write) @@ -930,7 +930,7 @@ func logoutStmt( return nil, nil, err } - fn := func(sessionID guuid.UUID) error { + fn := func(sessionID uuid.UUID) error { _, err := writeStmt.Exec(sessionID) return err } @@ -949,7 +949,7 @@ func outOthersSQL(prefix string) queryT { func outOthersStmt( cfg dbconfigT, -) (func(guuid.UUID) error, func() error, error) { +) (func(uuid.UUID) error, func() error, error) { q := outOthersSQL(cfg.prefix) writeStmt, err := cfg.shared.Prepare(q.write) @@ -957,7 +957,7 @@ func outOthersStmt( return nil, nil, err } - fn := func(sessionID guuid.UUID) error { + fn := func(sessionID uuid.UUID) error { _, err := writeStmt.Exec(sessionID) return err } @@ -976,7 +976,7 @@ func outAllSQL(prefix string) queryT { func outAllStmt( cfg dbconfigT, -) (func(guuid.UUID) error, func() error, error) { +) (func(uuid.UUID) error, func() error, error) { q := outAllSQL(cfg.prefix) writeStmt, err := cfg.shared.Prepare(q.write) @@ -984,7 +984,7 @@ func outAllStmt( return nil, nil, err } - fn := func(sessionID guuid.UUID) error { + fn := func(sessionID uuid.UUID) error { _, err := writeStmt.Exec(sessionID) return err } @@ -1068,7 +1068,7 @@ func initDB( var connMutex sync.RWMutex return queriesT{ register: func( - a guuid.UUID, + a uuid.UUID, b string, c []byte, d []byte, @@ -1077,12 +1077,12 @@ func initDB( defer connMutex.RUnlock() return register(a, b, c, d) }, - sendToken: func(a guuid.UUID, b string) error { + sendToken: func(a uuid.UUID, b string) error { connMutex.RLock() defer connMutex.RUnlock() return sendToken(a, b) }, - confirm: func(a string, b guuid.UUID) (sessionT, error) { + confirm: func(a string, b uuid.UUID) (sessionT, error) { connMutex.RLock() defer connMutex.RUnlock() return confirm(a, b) @@ -1092,47 +1092,47 @@ func initDB( defer connMutex.RUnlock() return byEmail(a) }, - userByUUID: func(a guuid.UUID) (userT, error) { + userByUUID: func(a uuid.UUID) (userT, error) { connMutex.RLock() defer connMutex.RUnlock() return userByUUID(a) }, - login: func(a guuid.UUID, b guuid.UUID) (sessionT, error) { + login: func(a uuid.UUID, b uuid.UUID) (sessionT, error) { connMutex.RLock() defer connMutex.RUnlock() return login(a, b) }, - refresh: func(a guuid.UUID, b guuid.UUID) (sessionT, error) { + refresh: func(a uuid.UUID, b uuid.UUID) (sessionT, error) { connMutex.RLock() defer connMutex.RUnlock() return refresh(a, b) }, - reset: func(a int64, b []byte, c guuid.UUID) (sessionT, error) { + reset: func(a int64, b []byte, c uuid.UUID) (sessionT, error) { connMutex.RLock() defer connMutex.RUnlock() return reset(a, b, c) }, - change: func(a guuid.UUID, b []byte) (sessionT, error) { + change: func(a uuid.UUID, b []byte) (sessionT, error) { connMutex.RLock() defer connMutex.RUnlock() return change(a, b) }, - byUUID: func(a guuid.UUID) (sessionT, error) { + byUUID: func(a uuid.UUID) (sessionT, error) { connMutex.RLock() defer connMutex.RUnlock() return byUUID(a) }, - logout: func(a guuid.UUID) error { + logout: func(a uuid.UUID) error { connMutex.RLock() defer connMutex.RUnlock() return logout(a) }, - outOthers: func(a guuid.UUID) error { + outOthers: func(a uuid.UUID) error { connMutex.RLock() defer connMutex.RUnlock() return outOthers(a) }, - outAll: func(a guuid.UUID) error { + outAll: func(a uuid.UUID) error { connMutex.RLock() defer connMutex.RUnlock() return outAll(a) @@ -1385,7 +1385,7 @@ func (auth authT) Register( / FIXME: how so? */ - flowID := guuid.New() + flowID := uuid.New() waiter := auth.queue.WaitFor(NEW_USER, flowID, "register") defer waiter.Close() @@ -1417,7 +1417,7 @@ func (auth authT) Register( func sendConfirmationMessage( email string, - flowID guuid.UUID, + flowID uuid.UUID, ) (fiinha.UnsentMessage, error) { data := make(map[string]interface{}) data["email"] = email @@ -1434,7 +1434,7 @@ func sendConfirmationMessage( } func (auth authT) ResendConfirmation(email string) error { - unsent, err := sendConfirmationMessage(email, guuid.New()) + unsent, err := sendConfirmationMessage(email, uuid.New()) if err != nil { return err } @@ -1461,7 +1461,7 @@ func asPublicSession(session sessionT) (Session, error) { } func (auth authT) ConfirmEmail(token string) (Session, error) { - session, err := auth.queries.confirm("token FIXME", guuid.New()) + session, err := auth.queries.confirm("token FIXME", uuid.New()) if err != nil { return Session{}, err } @@ -1502,7 +1502,7 @@ func (auth authT) LoginEmail( return Session{}, ErrUnconfirmed } - session, err := auth.queries.login(user.uuid, guuid.New()) + session, err := auth.queries.login(user.uuid, uuid.New()) if err != nil { return Session{}, err } @@ -1512,7 +1512,7 @@ func (auth authT) LoginEmail( func forgotPasswordMessage( email string, - flowID guuid.UUID, + flowID uuid.UUID, ) (fiinha.UnsentMessage, error) { data := make(map[string]interface{}) data["email"] = email @@ -1535,7 +1535,7 @@ func (auth authT) ForgotPassword(email string) error { return err } - unsent, err := forgotPasswordMessage(user.email, guuid.New()) + unsent, err := forgotPasswordMessage(user.email, uuid.New()) if err != nil { return err } @@ -1558,7 +1558,7 @@ func checkSession(session sessionT, now time.Time) error { } func validateSession( - lookupFn func(guuid.UUID) (sessionT, error), + lookupFn func(uuid.UUID) (sessionT, error), session sessionT, ) error { dbSession, err := lookupFn(session.uuid) @@ -1578,8 +1578,8 @@ func (auth authT) Refresh(session Session) (Session, error) { } */ - // return auth.queries.refresh(session.uuid, guuid.New()) - newSession, err := auth.queries.refresh(session.UUID, guuid.New()) + // return auth.queries.refresh(session.uuid, uuid.New()) + newSession, err := auth.queries.refresh(session.UUID, uuid.New()) if err != nil { return Session{}, err } @@ -1588,7 +1588,7 @@ func (auth authT) Refresh(session Session) (Session, error) { } func (auth authT) ResetPassword( - token guuid.UUID, + token uuid.UUID, password string, confirmPassword string, ) (Session, error) { @@ -1619,7 +1619,7 @@ func (auth authT) ResetPassword( } else { nextFn = func() (sessionT, error) { // return auth.queries.confirm(user.id, pwhash, token) - return auth.queries.confirm("token FIXME", guuid.New()) + return auth.queries.confirm("token FIXME", uuid.New()) } } @@ -1632,7 +1632,7 @@ func (auth authT) ResetPassword( } func (auth authT) ChangePassword( - userID guuid.UUID, + userID uuid.UUID, currentPassword string, newPassword string, confirmNewPassword string, @@ -1672,9 +1672,9 @@ func (auth authT) ChangePassword( } func runLogout( - lookupFn func(guuid.UUID) (sessionT, error), - sessionID guuid.UUID, - queryFn func(guuid.UUID) error, + lookupFn func(uuid.UUID) (sessionT, error), + sessionID uuid.UUID, + queryFn func(uuid.UUID) error, ) error { /* err := validateSession(lookupFn, session) diff --git a/tests/cracha.go b/tests/cracha.go index 9421a30..6bb0c53 100644 --- a/tests/cracha.go +++ b/tests/cracha.go @@ -9,7 +9,7 @@ import ( "time" "golite" - "guuid" + "uuid" "scrypt" g "gobang" ) @@ -17,7 +17,7 @@ import ( type userDataT struct{ - userID guuid.UUID + userID uuid.UUID email string salt []byte pwhash []byte @@ -34,7 +34,7 @@ func mksalt() []byte { func newUser() userDataT { return userDataT{ - userID: guuid.New(), + userID: uuid.New(), email: string(mksalt()), salt: mksalt(), pwhash: mksalt(), @@ -193,7 +193,7 @@ func test_registerStmt() { g.Testing("users can't have the same uuid", func() { u1 := newUser() u2 := newUser() - userID := guuid.New() + userID := uuid.New() _, err1 := register(userID, u1.email, u1.salt, u1.pwhash) _, err2 := register(userID, u2.email, u2.salt, u2.pwhash) @@ -275,7 +275,7 @@ func test_sendTokenStmt() { g.Testing("can't send a token to a non-existent user", func() { - err := sendToken(guuid.New(), "some token") + err := sendToken(uuid.New(), "some token") g.TAssertEqual( err.(golite.Error).ExtendedCode, golite.ErrConstraintNotNull, @@ -398,13 +398,13 @@ func test_confirmStmt() { g.Testing("can't confirm a token that doesn't exist", func() { - _, err := confirm(string(mksalt()), guuid.New()) + _, err := confirm(string(mksalt()), uuid.New()) g.TAssertEqual(err, sql.ErrNoRows) }) g.Testing("otherwise it creates a confirmation and a session", func() { u := newUser() - sessionID := guuid.New() + sessionID := uuid.New() _, err := register(u.userID, u.email, u.salt, u.pwhash) g.TErrorIf(err) @@ -427,8 +427,8 @@ func test_confirmStmt() { g.TErrorIf(sendToken(u.userID, u.token)) - _, err1 := confirm(u.token, guuid.New()) - _, err2 := confirm(u.token, guuid.New()) + _, err1 := confirm(u.token, uuid.New()) + _, err2 := confirm(u.token, uuid.New()) g.TErrorIf(err1) g.TAssertEqual( err2.(golite.Error).ExtendedCode, @@ -449,8 +449,8 @@ func test_confirmStmt() { sendToken(u.userID, token2), )) - _, err1 := confirm(token1, guuid.New()) - _, err2 := confirm(token2, guuid.New()) + _, err1 := confirm(token1, uuid.New()) + _, err2 := confirm(token2, uuid.New()) g.TErrorIf(err1) g.TAssertEqual( err2.(golite.Error).ExtendedCode, @@ -522,7 +522,7 @@ func test_byEmailStmt() { user2, err := byEmail(u.email) g.TErrorIf(err) - _, err = confirm(u.token, guuid.New()) + _, err = confirm(u.token, uuid.New()) g.TErrorIf(err) user3, err := byEmail(u.email) @@ -579,7 +579,7 @@ func test_userByUUIDStmt() { g.Testing("error when not found", func() { - _, err := userByUUID(guuid.New()) + _, err := userByUUID(uuid.New()) g.TAssertEqual(err, sql.ErrNoRows) }) @@ -597,7 +597,7 @@ func test_userByUUIDStmt() { user2, err := userByUUID(u.userID) g.TErrorIf(err) - _, err = confirm(u.token, guuid.New()) + _, err = confirm(u.token, uuid.New()) g.TErrorIf(err) user3, err := userByUUID(u.userID) @@ -657,7 +657,7 @@ func test_loginStmt() { g.Testing("a user must exist to login", func() { - _, err := login(guuid.New(), guuid.New()) + _, err := login(uuid.New(), uuid.New()) g.TAssertEqual( err.(golite.Error).ExtendedCode, golite.ErrConstraintNotNull, @@ -667,7 +667,7 @@ func test_loginStmt() { g.Testing("sessionID must be unique globally", func() { u1 := newUser() u2 := newUser() - sessionID := guuid.New() + sessionID := uuid.New() _, err := register(u1.userID, u1.email, u1.salt, u1.pwhash) g.TErrorIf(err) @@ -691,8 +691,8 @@ func test_loginStmt() { g.Testing("a user can have multiple active sessions", func() { u := newUser() - sessionID1 := guuid.New() - sessionID2 := guuid.New() + sessionID1 := uuid.New() + sessionID2 := uuid.New() _, err := register(u.userID, u.email, u.salt, u.pwhash) g.TErrorIf(err) @@ -712,8 +712,8 @@ func test_loginStmt() { g.Testing("multiple users can be logged in", func() { u1 := newUser() u2 := newUser() - sessionID1 := guuid.New() - sessionID2 := guuid.New() + sessionID1 := uuid.New() + sessionID2 := uuid.New() _, err := register(u1.userID, u1.email, u1.salt, u1.pwhash) g.TErrorIf(err) @@ -737,7 +737,7 @@ func test_loginStmt() { _, err := register(u.userID, u.email, u.salt, u.pwhash) g.TErrorIf(err) - _, err = login(u.userID, guuid.New()) + _, err = login(u.userID, uuid.New()) g.TErrorIf(err) }) @@ -749,14 +749,14 @@ func test_loginStmt() { g.TErrorIf(sendToken(u.userID, u.token)) - _, err = confirm(u.token, guuid.New()) + _, err = confirm(u.token, uuid.New()) g.TErrorIf(err) user, err := byEmail(u.email) g.TErrorIf(err) g.TAssertEqual(user.confirmed, true) - _, err = login(u.userID, guuid.New()) + _, err = login(u.userID, uuid.New()) g.TErrorIf(err) }) @@ -820,14 +820,14 @@ func test_refreshStmt() { err := sendToken(u.userID, u.token) g.TErrorIf(err) - session, err := confirm(u.token, guuid.New()) + session, err := confirm(u.token, uuid.New()) g.TErrorIf(err) return session } g.Testing("a session needs to exist be be refreshed", func() { - _, err := refresh(guuid.New(), guuid.New()) + _, err := refresh(uuid.New(), uuid.New()) g.TAssertEqual( err.(golite.Error).ExtendedCode, golite.ErrConstraintNotNull, @@ -836,8 +836,8 @@ func test_refreshStmt() { g.Testing("we can refresh the session of an unconfirmed user", func() { u := newUser() - sessionID1 := guuid.New() - sessionID2 := guuid.New() + sessionID1 := uuid.New() + sessionID2 := uuid.New() reg(u) @@ -861,8 +861,8 @@ func test_refreshStmt() { g.Testing("we can refresh the session of a confirmed user", func() { u := newUser() - sessionID1 := guuid.New() - sessionID2 := guuid.New() + sessionID1 := uuid.New() + sessionID2 := uuid.New() reg(u) session1 := conf(u) |