Software /
code /
prosody
Annotate
.luacheckrc @ 8791:8da11142fabf
muc: Allow clients to change multiple affiliations or roles at once (#345)
According to XEP-0045 sections 9.2, 9.5 and 9.8 affiliation lists and role
lists should allow mass-modification. Prosody however would just use the
first entry of the list and ignore the rest. This is fixed by introducing
a `for` loop to `set` stanzas of the respective `muc#admin` namespace.
In order for this loop to work, the error handling was changed a little.
Prosody no longer returns after the first error. Instead, an error reply
is sent for each malformed or otherwise wrong entry, but the loop keeps
going over the other entries. This may lead to multiple error messages
being sent for one client request. A notable exception from this is when
the XML Schema for `muc#admin` requests is violated. In that case the loop
is aborted with an error message to the client.
The change is a bit bigger than that in order to have the loop only for
`set` stanzas without changing the behaviour of the `get` stanzas. This is
now more in line with trunk, where there are separate methods for each
stanza type.
References: #345
author | Lennart Sauerbeck <devel@lennart.sauerbeck.org> |
---|---|
date | Sat, 18 Mar 2017 18:47:28 +0100 |
parent | 8048:75e37366a03f |
child | 8239:20e3d5689cce |
rev | line source |
---|---|
6667
e4338c0f739a
.luacheckrc: Commit initial config for luacheck
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
1 cache = true |
6986
6aae14b079d0
.luacheckrc: Whitelist import() global function
Matthew Wild <mwild1@gmail.com>
parents:
6790
diff
changeset
|
2 read_globals = { "prosody", "hosts", "import" } |
6667
e4338c0f739a
.luacheckrc: Commit initial config for luacheck
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
3 globals = { "_M" } |
e4338c0f739a
.luacheckrc: Commit initial config for luacheck
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
4 allow_defined_top = true |
e4338c0f739a
.luacheckrc: Commit initial config for luacheck
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
5 module = true |
e4338c0f739a
.luacheckrc: Commit initial config for luacheck
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
6 unused_secondaries = false |
e4338c0f739a
.luacheckrc: Commit initial config for luacheck
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
7 codes = true |
7953
d183ff55442f
luacheckrc: Ignore shadowing of logger
Kim Alvefur <zash@zash.se>
parents:
7952
diff
changeset
|
8 ignore = { "411/err", "421/err", "411/ok", "421/ok", "211/_ENV", "431/log" } |
6750
2a2eb30b1ed4
luacheckrc: Allow plugins to implement functions under module.* (module.load, etc.)
Matthew Wild <mwild1@gmail.com>
parents:
6667
diff
changeset
|
9 |
7948
ed99a8e3c260
luacheckrc: Set max line length to 150 for now [luacheck]
Kim Alvefur <zash@zash.se>
parents:
7872
diff
changeset
|
10 max_line_length = 150 |
ed99a8e3c260
luacheckrc: Set max line length to 150 for now [luacheck]
Kim Alvefur <zash@zash.se>
parents:
7872
diff
changeset
|
11 |
7872
3105d35cc2c2
luacheckrc: Allow mutating the global prosody and hosts tables in core/ (luacheck 0.18 adds detection of indirect mutation)
Kim Alvefur <zash@zash.se>
parents:
7479
diff
changeset
|
12 files["core/"] = { |
7949
8acc35b5355a
core: Allow select core modules to mutate some globals (needs luacheck 1.19)
Kim Alvefur <zash@zash.se>
parents:
7948
diff
changeset
|
13 read_globals = { "prosody", "hosts" }; |
8acc35b5355a
core: Allow select core modules to mutate some globals (needs luacheck 1.19)
Kim Alvefur <zash@zash.se>
parents:
7948
diff
changeset
|
14 globals = { "prosody.hosts.?", "hosts.?" }; |
7872
3105d35cc2c2
luacheckrc: Allow mutating the global prosody and hosts tables in core/ (luacheck 0.18 adds detection of indirect mutation)
Kim Alvefur <zash@zash.se>
parents:
7479
diff
changeset
|
15 } |
6750
2a2eb30b1ed4
luacheckrc: Allow plugins to implement functions under module.* (module.load, etc.)
Matthew Wild <mwild1@gmail.com>
parents:
6667
diff
changeset
|
16 files["plugins/"] = { |
7952
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
17 read_globals = { |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
18 -- Module instance |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
19 "module.name", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
20 "module.host", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
21 "module._log", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
22 "module.log", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
23 "module.event_handlers", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
24 "module.reloading", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
25 "module.saved_state", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
26 "module.global", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
27 "module.path", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
28 |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
29 -- Module API |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
30 "module.add_extension", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
31 "module.add_feature", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
32 "module.add_identity", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
33 "module.add_item", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
34 "module.add_timer", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
35 "module.broadcast", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
36 "module.context", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
37 "module.depends", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
38 "module.fire_event", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
39 "module.get_directory", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
40 "module.get_host", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
41 "module.get_host_items", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
42 "module.get_host_type", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
43 "module.get_name", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
44 "module.get_option", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
45 "module.get_option_array", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
46 "module.get_option_boolean", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
47 "module.get_option_inherited_set", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
48 "module.get_option_number", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
49 "module.get_option_path", |
7981
bbb900cfcfa5
luacheckrc: Add module:get_option_scalar to known globals
Kim Alvefur <zash@zash.se>
parents:
7953
diff
changeset
|
50 "module.get_option_scalar", |
7952
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
51 "module.get_option_set", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
52 "module.get_option_string", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
53 "module.handle_items", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
54 "module.has_feature", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
55 "module.has_identity", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
56 "module.hook", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
57 "module.hook_global", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
58 "module.hook_object_event", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
59 "module.hook_tag", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
60 "module.load_resource", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
61 "module.measure", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
62 "module.measure_event", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
63 "module.measure_global_event", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
64 "module.measure_object_event", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
65 "module.open_store", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
66 "module.provides", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
67 "module.remove_item", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
68 "module.require", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
69 "module.send", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
70 "module.set_global", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
71 "module.shared", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
72 "module.unhook", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
73 "module.unhook_object_event", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
74 "module.wrap_event", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
75 "module.wrap_global", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
76 "module.wrap_object_event", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
77 }; |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
78 globals = { |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
79 "_M", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
80 |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
81 -- Methods that can be set on module API |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
82 "module.unload", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
83 "module.add_host", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
84 "module.load", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
85 "module.add_host", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
86 "module.save", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
87 "module.restore", |
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
88 "module.command", |
8048
75e37366a03f
luacheckrc: Declare module.environment as writable (thanks Link Mauve)
Kim Alvefur <zash@zash.se>
parents:
7981
diff
changeset
|
89 "module.environment", |
7952
38053bf1630d
luacheckrc: Include entire module API
Kim Alvefur <zash@zash.se>
parents:
7949
diff
changeset
|
90 }; |
6750
2a2eb30b1ed4
luacheckrc: Allow plugins to implement functions under module.* (module.load, etc.)
Matthew Wild <mwild1@gmail.com>
parents:
6667
diff
changeset
|
91 } |
7476
42d8955be784
luacheckrc: Ignore assert helper functions used in tests/*
Kim Alvefur <zash@zash.se>
parents:
6986
diff
changeset
|
92 files["tests/"] = { |
7478
2489abe342c1
luacheckrc: make test helpers read-only globals, add testlib_new_env and runtest
Anton Shestakov <av6@dwimlabs.net>
parents:
7476
diff
changeset
|
93 read_globals = { |
2489abe342c1
luacheckrc: make test helpers read-only globals, add testlib_new_env and runtest
Anton Shestakov <av6@dwimlabs.net>
parents:
7476
diff
changeset
|
94 "testlib_new_env", |
2489abe342c1
luacheckrc: make test helpers read-only globals, add testlib_new_env and runtest
Anton Shestakov <av6@dwimlabs.net>
parents:
7476
diff
changeset
|
95 "assert_equal", |
2489abe342c1
luacheckrc: make test helpers read-only globals, add testlib_new_env and runtest
Anton Shestakov <av6@dwimlabs.net>
parents:
7476
diff
changeset
|
96 "assert_table", |
2489abe342c1
luacheckrc: make test helpers read-only globals, add testlib_new_env and runtest
Anton Shestakov <av6@dwimlabs.net>
parents:
7476
diff
changeset
|
97 "assert_function", |
2489abe342c1
luacheckrc: make test helpers read-only globals, add testlib_new_env and runtest
Anton Shestakov <av6@dwimlabs.net>
parents:
7476
diff
changeset
|
98 "assert_string", |
2489abe342c1
luacheckrc: make test helpers read-only globals, add testlib_new_env and runtest
Anton Shestakov <av6@dwimlabs.net>
parents:
7476
diff
changeset
|
99 "assert_boolean", |
2489abe342c1
luacheckrc: make test helpers read-only globals, add testlib_new_env and runtest
Anton Shestakov <av6@dwimlabs.net>
parents:
7476
diff
changeset
|
100 "assert_is", |
2489abe342c1
luacheckrc: make test helpers read-only globals, add testlib_new_env and runtest
Anton Shestakov <av6@dwimlabs.net>
parents:
7476
diff
changeset
|
101 "assert_is_not", |
2489abe342c1
luacheckrc: make test helpers read-only globals, add testlib_new_env and runtest
Anton Shestakov <av6@dwimlabs.net>
parents:
7476
diff
changeset
|
102 "runtest", |
7476
42d8955be784
luacheckrc: Ignore assert helper functions used in tests/*
Kim Alvefur <zash@zash.se>
parents:
6986
diff
changeset
|
103 }; |
42d8955be784
luacheckrc: Ignore assert helper functions used in tests/*
Kim Alvefur <zash@zash.se>
parents:
6986
diff
changeset
|
104 } |