auth.schema 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. CREATE TABLE IF NOT EXISTS user (
  2. name TEXT NOT NULL UNIQUE,
  3. salt TEXT NOT NULL,
  4. hash TEXT NOT NULL,
  5. totp_secret TEXT DEFAULT NULL,
  6. contact_email TEXT DEFAULT NULL
  7. );
  8. CREATE TABLE IF NOT EXISTS session (
  9. id TEXT PRIMARY KEY UNIQUE,
  10. username TEXT NOT NULL UNIQUE REFERENCES user(name) ON DELETE CASCADE
  11. );
  12. CREATE INDEX IF NOT EXISTS username_idx ON user(name);
  13. CREATE VIEW IF NOT EXISTS sess_user AS SELECT user.name AS name, session.id AS session FROM user JOIN session ON session.username=user.name;
  14. CREATE TABLE IF NOT EXISTS user_acl (
  15. username TEXT NOT NULL UNIQUE REFERENCES user(name) ON DELETE CASCADE,
  16. acl TEXT NOT NULL
  17. );
  18. CREATE TABLE IF NOT EXISTS change_request (
  19. username TEXT NOT NULL REFERENCES user(name) ON DELETE CASCADE,
  20. type TEXT NOT NULL,
  21. token TEXT PRIMARY KEY UNIQUE,
  22. secret TEXT,
  23. processed NUMERIC DEFAULT 0
  24. );
  25. CREATE VIEW IF NOT EXISTS change_request_full AS SELECT cr.username, cr.type, cr.token, cr.secret, cr.processed, u.contact_email from change_request AS cr JOIN user AS u ON u.name=cr.username;