equal
deleted
inserted
replaced
3 local resolve_relative_path = require "core.configmanager".resolve_relative_path; |
3 local resolve_relative_path = require "core.configmanager".resolve_relative_path; |
4 local envload = require "util.envload".envload; |
4 local envload = require "util.envload".envload; |
5 local logger = require "util.logger".init; |
5 local logger = require "util.logger".init; |
6 local it = require "util.iterators"; |
6 local it = require "util.iterators"; |
7 local set = require "util.set"; |
7 local set = require "util.set"; |
|
8 |
|
9 local have_features, features = pcall(require, "core.features"); |
|
10 features = have_features and features.available or set.new(); |
8 |
11 |
9 -- [definition_type] = definition_factory(param) |
12 -- [definition_type] = definition_factory(param) |
10 local definitions = module:shared("definitions"); |
13 local definitions = module:shared("definitions"); |
11 |
14 |
12 -- When a definition instance has been instantiated, it lives here |
15 -- When a definition instance has been instantiated, it lives here |
179 bare_to = { depends = { "jid_bare", "to" }, local_code = "local bare_to = jid_bare(to)"}; |
182 bare_to = { depends = { "jid_bare", "to" }, local_code = "local bare_to = jid_bare(to)"}; |
180 bare_from = { depends = { "jid_bare", "from" }, local_code = "local bare_from = jid_bare(from)"}; |
183 bare_from = { depends = { "jid_bare", "from" }, local_code = "local bare_from = jid_bare(from)"}; |
181 group_contains = { |
184 group_contains = { |
182 global_code = [[local group_contains = module:depends("groups").group_contains]]; |
185 global_code = [[local group_contains = module:depends("groups").group_contains]]; |
183 }; |
186 }; |
184 is_admin = { global_code = [[local is_admin = require "core.usermanager".is_admin;]]}; |
187 is_admin = features:contains("permissions") and { global_code = [[local is_admin = require "core.usermanager".is_admin;]]} or nil; |
|
188 get_jid_role = require "core.usermanager".get_jid_role and { global_code = [[local get_jid_role = require "core.usermanager".get_jid_role;]] } or nil; |
185 core_post_stanza = { global_code = [[local core_post_stanza = prosody.core_post_stanza;]] }; |
189 core_post_stanza = { global_code = [[local core_post_stanza = prosody.core_post_stanza;]] }; |
186 zone = { global_code = function (zone) |
190 zone = { global_code = function (zone) |
187 local var = zone; |
191 local var = zone; |
188 if var == "$local" then |
192 if var == "$local" then |
189 var = "_local"; -- See #1090 |
193 var = "_local"; -- See #1090 |