2019-11-17 02:50:58 +07:00
|
|
|
package storage
|
|
|
|
|
2020-03-05 06:25:52 +07:00
|
|
|
import "fmt"
|
|
|
|
|
2019-12-08 06:22:02 +07:00
|
|
|
// Keep table names in lower case because some DB does not support upper case.
|
|
|
|
var preferencesTableName = "user_preferences"
|
|
|
|
var identityVerificationTokensTableName = "identity_verification_tokens"
|
|
|
|
var totpSecretsTableName = "totp_secrets"
|
|
|
|
var u2fDeviceHandlesTableName = "u2f_devices"
|
|
|
|
var authenticationLogsTableName = "authentication_logs"
|
2020-03-05 06:25:52 +07:00
|
|
|
|
|
|
|
// SQLCreateUserPreferencesTable common SQL query to create user_preferences table
|
|
|
|
var SQLCreateUserPreferencesTable = fmt.Sprintf(`
|
|
|
|
CREATE TABLE IF NOT EXISTS %s (
|
|
|
|
username VARCHAR(100) PRIMARY KEY,
|
|
|
|
second_factor_method VARCHAR(11)
|
|
|
|
)`, preferencesTableName)
|
|
|
|
|
|
|
|
// SQLCreateIdentityVerificationTokensTable common SQL query to create identity_verification_tokens table
|
|
|
|
var SQLCreateIdentityVerificationTokensTable = fmt.Sprintf(`
|
|
|
|
CREATE TABLE IF NOT EXISTS %s (token VARCHAR(512))
|
|
|
|
`, identityVerificationTokensTableName)
|
|
|
|
|
|
|
|
// SQLCreateTOTPSecretsTable common SQL query to create totp_secrets table
|
|
|
|
var SQLCreateTOTPSecretsTable = fmt.Sprintf(`
|
|
|
|
CREATE TABLE IF NOT EXISTS %s (username VARCHAR(100) PRIMARY KEY, secret VARCHAR(64))
|
|
|
|
`, totpSecretsTableName)
|
|
|
|
|
|
|
|
// SQLCreateU2FDeviceHandlesTable common SQL query to create u2f_device_handles table
|
|
|
|
var SQLCreateU2FDeviceHandlesTable = fmt.Sprintf(`
|
|
|
|
CREATE TABLE IF NOT EXISTS %s (
|
|
|
|
username VARCHAR(100) PRIMARY KEY,
|
|
|
|
keyHandle TEXT,
|
|
|
|
publicKey TEXT
|
|
|
|
)`, u2fDeviceHandlesTableName)
|
|
|
|
|
|
|
|
// SQLCreateAuthenticationLogsTable common SQL query to create authentication_logs table
|
|
|
|
var SQLCreateAuthenticationLogsTable = fmt.Sprintf(`
|
|
|
|
CREATE TABLE IF NOT EXISTS %s (
|
|
|
|
username VARCHAR(100),
|
|
|
|
successful BOOL,
|
|
|
|
time INTEGER,
|
|
|
|
INDEX usr_time_idx (username, time)
|
|
|
|
)`, authenticationLogsTableName)
|