Create test and dev users for testing
This commit is contained in:
parent
3c93224817
commit
0d67eab626
1 changed files with 28 additions and 9 deletions
|
|
@ -22,10 +22,26 @@ proc backup(path: string, contents: Option[string]=none[string]()) =
|
||||||
echo(path, " already exists. Moving to ", backupPath)
|
echo(path, " already exists. Moving to ", backupPath)
|
||||||
moveFile(path, backupPath)
|
moveFile(path, backupPath)
|
||||||
|
|
||||||
|
proc createUser(db: DbConn, user: tuple[username, password, email: string],
|
||||||
|
rank: Rank) =
|
||||||
|
|
||||||
|
if user.username.len != 0:
|
||||||
|
let salt = makeSalt()
|
||||||
|
let password = makePassword(user.password, salt)
|
||||||
|
|
||||||
|
exec(db, sql"""
|
||||||
|
INSERT INTO person(name, password, email, salt, status, lastOnline)
|
||||||
|
VALUES (?, ?, ?, ?, ?, DATETIME('now'))
|
||||||
|
""", user.username, password, user.email, salt, $rank)
|
||||||
|
|
||||||
proc initialiseDb(admin: tuple[username, password, email: string],
|
proc initialiseDb(admin: tuple[username, password, email: string],
|
||||||
filename="nimforum.db") =
|
filename="nimforum.db") =
|
||||||
let path = getCurrentDir() / filename
|
let
|
||||||
if "-dev" notin filename and "-test" notin filename:
|
path = getCurrentDir() / filename
|
||||||
|
isTest = "-test" in filename
|
||||||
|
isDev = "-dev" in filename
|
||||||
|
|
||||||
|
if not isDev and not isTest:
|
||||||
backup(path)
|
backup(path)
|
||||||
|
|
||||||
removeFile(path)
|
removeFile(path)
|
||||||
|
|
@ -98,13 +114,16 @@ proc initialiseDb(admin: tuple[username, password, email: string],
|
||||||
db.exec sql"create index PersonStatusIdx on person(status);"
|
db.exec sql"create index PersonStatusIdx on person(status);"
|
||||||
|
|
||||||
# Create default user.
|
# Create default user.
|
||||||
if admin.username.len != 0:
|
db.createUser(admin, Admin)
|
||||||
let salt = makeSalt()
|
|
||||||
let password = makePassword(admin.password, salt)
|
# Create test users if test or development
|
||||||
db.exec(sql"""
|
if isTest or isDev:
|
||||||
insert into person (id, name, password, email, salt, status)
|
for rank in Spammer..Moderator:
|
||||||
values (1, ?, ?, ?, ?, ?);
|
let rankLower = toLowerAscii($rank)
|
||||||
""", admin.username, password, admin.email, salt, $Admin)
|
let user = (username: $rankLower,
|
||||||
|
password: $rankLower,
|
||||||
|
email: $rankLower & "@localhost.local")
|
||||||
|
db.createUser(user, rank)
|
||||||
|
|
||||||
# -- Post
|
# -- Post
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue