mirror of
https://github.com/YunoHost/SSOwat.git
synced 2024-09-03 20:06:27 +02:00
51 lines
1.4 KiB
Lua
51 lines
1.4 KiB
Lua
--
|
|
-- init.lua
|
|
--
|
|
-- This is the initialization file of SSOwat. It is called once at the Nginx
|
|
-- server's start.
|
|
-- Consequently, all the variables declared (along with libraries and
|
|
-- translations) in this file will be *persistent* from one HTTP request to
|
|
-- another.
|
|
--
|
|
|
|
-- Remove prepending '@' & trailing 'init.lua'
|
|
script_path = string.sub(debug.getinfo(1).source, 2, -9)
|
|
|
|
-- Include local libs in package.path
|
|
package.path = package.path .. ";"..script_path.."?.lua"
|
|
|
|
-- Load libraries
|
|
json = require "json"
|
|
lualdap = require "lualdap"
|
|
math = require "math"
|
|
hige = require "hige"
|
|
lfs = require "lfs"
|
|
socket = require "socket"
|
|
|
|
-- Persistent shared table
|
|
flashs = {}
|
|
i18n = {}
|
|
|
|
-- Efficient function to get a random string
|
|
function random_string ()
|
|
math.randomseed( tonumber(tostring(socket.gettime()*10000):reverse()) )
|
|
str = tostring(math.random()):sub(3)
|
|
socket.sleep(1e-400)
|
|
return str
|
|
end
|
|
|
|
-- Load translations in the "i18n" above table
|
|
local locale_dir = script_path.."portal/locales/"
|
|
for file in lfs.dir(locale_dir) do
|
|
if string.sub(file, -4) == "json" then
|
|
local lang = string.sub(file, 1, 2)
|
|
local locale_file = io.open(locale_dir..file, "r")
|
|
i18n[lang] = json.decode(locale_file:read("*all"))
|
|
end
|
|
end
|
|
|
|
-- Path of the configuration
|
|
conf_path = "/etc/ssowat/conf.json"
|
|
|
|
-- You should see that in your Nginx error logs by default
|
|
ngx.log(ngx.INFO, "SSOwat ready")
|