summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/gracha.go34
-rw-r--r--tests/gracha.go26
-rw-r--r--tests/queries.sql15
3 files changed, 10 insertions, 65 deletions
diff --git a/src/gracha.go b/src/gracha.go
index c240dd3..e41c20b 100644
--- a/src/gracha.go
+++ b/src/gracha.go
@@ -76,7 +76,6 @@ type userT struct{
email string
salt []byte
pwhash []byte
- metadata map[string]interface{}
confirmed bool
}
@@ -87,7 +86,6 @@ type sessionT struct{
userID guuid.UUID
// type_ string
revoked_at *time.Time
- metadata map[string]interface{}
}
type consumerT struct{
@@ -161,8 +159,7 @@ func createTablesSQL(prefix string) queryT {
uuid BLOB NOT NULL UNIQUE,
email TEXT NOT NULL UNIQUE,
salt BLOB NOT NULL UNIQUE,
- pwhash BLOB NOT NULL,
- metadata TEXT
+ pwhash BLOB NOT NULL
);
CREATE TABLE IF NOT EXISTS "%s_confirmation_attempts" (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
@@ -197,7 +194,6 @@ func createTablesSQL(prefix string) queryT {
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
user_id INTEGER NOT NULL REFERENCES "%s_users"(id),
role TEXT NOT NULL,
- metadata TEXT,
UNIQUE (user_id, role)
);
CREATE TABLE IF NOT EXISTS "%s_role_changes" (
@@ -211,19 +207,17 @@ func createTablesSQL(prefix string) queryT {
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
timestamp TEXT NOT NULL DEFAULT (%s),
uuid BLOB NOT NULL UNIQUE,
- user_id INTEGER NOT NULL REFERENCES "%s_users"(id),
+ user_id INTEGER NOT NULL REFERENCES "%s_users"(id)
-- type TEXT NOT NULL,
-- revoked_at TEXT,
-- revoker_id INTEGER REFERENCES "%s_users"(id),
-- FIXME: add provenance: login, refresh, confirmation, etc.
- metadata TEXT
);
CREATE TABLE IF NOT EXISTS "%s_attempts" (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
timestamp TEXT NOT NULL DEFAULT (%s),
user_id INTEGER REFERENCES "%s_users"(id),
- session_id INTEGER REFERENCES "%s_sessions"(id),
- metadata TEXT
+ session_id INTEGER REFERENCES "%s_sessions"(id)
);
CREATE TABLE IF NOT EXISTS "%s_audit" (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
@@ -231,8 +225,7 @@ func createTablesSQL(prefix string) queryT {
uuid BLOB NOT NULL UNIQUE,
attribute TEXT NOT NULL,
value TEXT NOT NULL,
- op BOOLEAN NOT NULL,
- metadata TEXT
+ op BOOLEAN NOT NULL
);
`
return queryT{
@@ -506,7 +499,7 @@ func confirmStmt(
func byEmailSQL(prefix string) queryT {
// FIXME: rewrite as LEFT JOIN?
const tmpl_read = `
- SELECT id, timestamp, uuid, salt, pwhash, metadata, (
+ SELECT id, timestamp, uuid, salt, pwhash, (
CASE WHEN EXISTS (
SELECT id FROM "%s_user_confirmations"
WHERE user_id = (
@@ -543,7 +536,6 @@ func byEmailStmt(
var (
timestr string
user_id_bytes []byte
- metadatastr sql.NullString
)
err := readStmt.QueryRow(email, email).Scan(
&user.id,
@@ -551,7 +543,6 @@ func byEmailStmt(
&user_id_bytes,
&user.salt,
&user.pwhash,
- &metadatastr,
&user.confirmed,
)
if err != nil {
@@ -564,21 +555,6 @@ func byEmailStmt(
return userT{}, err
}
- if metadatastr.Valid {
- err := json.Unmarshal(
- []byte(metadatastr.String),
- &user.metadata,
- )
- if err != nil {
- g.Warning(
- "failed to parse metadata field",
- "sqlite-json-unmarshal-error",
- "userID", user.uuid.String(),
- "error", err,
- )
- }
- }
-
return user, nil
}
diff --git a/tests/gracha.go b/tests/gracha.go
index 3c834ef..6991e56 100644
--- a/tests/gracha.go
+++ b/tests/gracha.go
@@ -432,32 +432,6 @@ func test_byEmailStmt() {
user2.confirmed = true
g.TAssertEqual(user2, user3)
})
-
- g.Testing("if there is metadata content it is included", func() {
- u := newUser()
-
- _, err := register(u.userID, u.email, u.salt, u.pwhash)
- g.TErrorIf(err)
-
- user1, err := byEmail(u.email)
- g.TErrorIf(err)
- g.TAssertEqual(user1.metadata == nil, true)
-
- const tmpl_write = `
- UPDATE "%s_users"
- SET METADATA = '{ "key": "value" }'
- WHERE uuid = ?;
- `
- qWrite := fmt.Sprintf(tmpl_write, prefix)
- _, err = db.Exec(qWrite, u.userID[:])
- g.TErrorIf(err)
-
- expected := map[string]interface{}{"key": "value"}
-
- user2, err := byEmail(u.email)
- g.TErrorIf(err)
- g.TAssertEqual(user2.metadata, expected)
- })
}
func test_loginStmt() {
diff --git a/tests/queries.sql b/tests/queries.sql
index c44a6c5..7e20ae9 100644
--- a/tests/queries.sql
+++ b/tests/queries.sql
@@ -7,8 +7,7 @@
uuid BLOB NOT NULL UNIQUE,
email TEXT NOT NULL UNIQUE,
salt BLOB NOT NULL UNIQUE,
- pwhash BLOB NOT NULL,
- metadata TEXT
+ pwhash BLOB NOT NULL
);
CREATE TABLE IF NOT EXISTS "gracha_confirmation_attempts" (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
@@ -43,7 +42,6 @@
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
user_id INTEGER NOT NULL REFERENCES "gracha_users"(id),
role TEXT NOT NULL,
- metadata TEXT,
UNIQUE (user_id, role)
);
CREATE TABLE IF NOT EXISTS "gracha_role_changes" (
@@ -57,19 +55,17 @@
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
timestamp TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%f000000Z', 'now')),
uuid BLOB NOT NULL UNIQUE,
- user_id INTEGER NOT NULL REFERENCES "gracha_users"(id),
+ user_id INTEGER NOT NULL REFERENCES "gracha_users"(id)
-- type TEXT NOT NULL,
-- revoked_at TEXT,
-- revoker_id INTEGER REFERENCES "gracha_users"(id),
-- FIXME: add provenance: login, refresh, confirmation, etc.
- metadata TEXT
);
CREATE TABLE IF NOT EXISTS "gracha_attempts" (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
timestamp TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%f000000Z', 'now')),
user_id INTEGER REFERENCES "gracha_users"(id),
- session_id INTEGER REFERENCES "gracha_sessions"(id),
- metadata TEXT
+ session_id INTEGER REFERENCES "gracha_sessions"(id)
);
CREATE TABLE IF NOT EXISTS "gracha_audit" (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
@@ -77,8 +73,7 @@
uuid BLOB NOT NULL UNIQUE,
attribute TEXT NOT NULL,
value TEXT NOT NULL,
- op BOOLEAN NOT NULL,
- metadata TEXT
+ op BOOLEAN NOT NULL
);
@@ -88,7 +83,7 @@
-- write:
-- read:
- SELECT id, timestamp, uuid, salt, pwhash, metadata, (
+ SELECT id, timestamp, uuid, salt, pwhash, (
CASE WHEN EXISTS (
SELECT id FROM "gracha_user_confirmations"
WHERE user_id = (