init.lua 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. local fw = require("fastweb")
  2. local utils = require("utils")
  3. local M = {}
  4. M.initialization = function(conn)
  5. local result,err = M.__get_guest_role_id(conn)
  6. if result == false then
  7. return false,err
  8. end
  9. --生成字节码
  10. local module_menu = require("fwutils.develop.function.menu")
  11. local module_acl = require("fwutils.develop.function.role_permissions")
  12. local module_template = require("fwutils.develop.function.template")
  13. if not module_menu.make_bytecode(nil,conn) then
  14. return false,"menu bytecode generation failed"
  15. end
  16. if not module_acl.make_bytecode(nil,conn) then
  17. return false,"acl bytecode generation failed"
  18. end
  19. if not module_template.make_bytecode(conn) then
  20. return false,"template bytecode generation failed"
  21. end
  22. return true
  23. end
  24. M.__get_guest_role_id = function(mysql_conn)
  25. local config = require("fwutils.config")
  26. local ppst = mysql_conn:setsql("SELECT * FROM fw_role WHERE guest = 1 AND server_id = ?")
  27. ppst:set_str(1,config.server_id)
  28. local result = ppst:query()
  29. if result:row_count() ~= 1 then
  30. return false,"role guest not found"
  31. end
  32. result:next()
  33. local bc = {
  34. GUEST_ROLE_ID = result:get("id"),
  35. }
  36. local code = "return " .. require("serpent").serialize(bc, {comment = false})
  37. utils.save_file(fw.website_dir().."/"..(config.path.luabytecode:gsub("%.", "/")).."/fwcache.lua",code)
  38. return true
  39. end
  40. M.guest_role_id = function()
  41. local config = require("fwutils.config")
  42. return require(config.path.luabytecode..".fwcache").GUEST_ROLE_ID
  43. end
  44. return M