You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.6 KiB
Lua
50 lines
1.6 KiB
Lua
local db = require "lapis.db"
|
|
local schema = require "lapis.db.schema"
|
|
local types = schema.types
|
|
|
|
return {
|
|
[100] = function()
|
|
schema.create_table("users", {
|
|
{ "id", types.serial { unique=true, primary_key=true }},
|
|
{ "username", types.varchar { unique=true }},
|
|
{ "password", types.varchar },
|
|
{ "admin", types.boolean { default=false }},
|
|
{ "mod", types.boolean { default=false }},
|
|
{ "janitor", types.boolean { default=false }}
|
|
})
|
|
|
|
schema.create_table("bans", {
|
|
{ "id", types.serial { unique=true, primary_key=true }},
|
|
{ "board_id", types.integer { default=0 }},
|
|
{ "ip", types.varchar },
|
|
{ "reason", types.varchar { null=true }},
|
|
{ "time", types.integer },
|
|
{ "duration", types.integer { default=259200 }}, -- 3 days
|
|
})
|
|
end,
|
|
[120] = function()
|
|
end,
|
|
[200] = function()
|
|
|
|
local Users = require "src.models.users"
|
|
local uuid = require "resty.jit-uuid"
|
|
uuid.seed()
|
|
|
|
schema.add_column("users", "api_key", types.varchar { default="00000000-0000-0000-0000-000000000000" })
|
|
local users = Users:get_all()
|
|
for _, user in ipairs(users) do
|
|
user.api_key = uuid()
|
|
user:update("api_key")
|
|
end
|
|
|
|
schema.add_column("users", "role", types.integer)
|
|
db.query("UPDATE users SET role=? WHERE janitor=true", Users.role.JANITOR)
|
|
db.query("UPDATE users SET role=? WHERE mod=true", Users.role.MOD)
|
|
db.query("UPDATE users SET role=? WHERE admin=true", Users.role.ADMIN)
|
|
db.query("UPDATE users SET role=? WHERE id=1", Users.role.OWNER)
|
|
schema.drop_column("users", "janitor")
|
|
schema.drop_column("users", "mod")
|
|
schema.drop_column("users", "admin")
|
|
end
|
|
}
|