Software /
code /
prosody
Comparison
plugins/muc/muc.lib.lua @ 6218:bf11910bad5a
plugins/muc: Move valid_roles, valid_affiliations and is_kickable_error to new muc/util module
author | daurnimator <quae@daurnimator.com> |
---|---|
date | Thu, 03 Apr 2014 17:09:04 -0400 |
parent | 6217:657c707d9229 |
child | 6219:a90159cfa530 |
comparison
equal
deleted
inserted
replaced
6217:657c707d9229 | 6218:bf11910bad5a |
---|---|
21 local log = require "util.logger".init("mod_muc"); | 21 local log = require "util.logger".init("mod_muc"); |
22 local base64 = require "util.encodings".base64; | 22 local base64 = require "util.encodings".base64; |
23 local md5 = require "util.hashes".md5; | 23 local md5 = require "util.hashes".md5; |
24 | 24 |
25 local occupant_lib = module:require "muc/occupant" | 25 local occupant_lib = module:require "muc/occupant" |
26 | 26 local muc_util = module:require "muc/util"; |
27 | 27 local is_kickable_error = muc_util.is_kickable_error; |
28 local is_kickable_error do | 28 local valid_roles, valid_affiliations = muc_util.valid_roles, muc_util.valid_affiliations; |
29 local kickable_error_conditions = { | |
30 ["gone"] = true; | |
31 ["internal-server-error"] = true; | |
32 ["item-not-found"] = true; | |
33 ["jid-malformed"] = true; | |
34 ["recipient-unavailable"] = true; | |
35 ["redirect"] = true; | |
36 ["remote-server-not-found"] = true; | |
37 ["remote-server-timeout"] = true; | |
38 ["service-unavailable"] = true; | |
39 ["malformed error"] = true; | |
40 }; | |
41 function is_kickable_error(stanza) | |
42 local cond = select(2, stanza:get_error()) or "malformed error"; | |
43 return kickable_error_conditions[cond]; | |
44 end | |
45 end | |
46 | 29 |
47 local room_mt = {}; | 30 local room_mt = {}; |
48 room_mt.__index = room_mt; | 31 room_mt.__index = room_mt; |
49 | 32 |
50 function room_mt:__tostring() | 33 function room_mt:__tostring() |
52 end | 35 end |
53 | 36 |
54 function room_mt:get_occupant_jid(real_jid) | 37 function room_mt:get_occupant_jid(real_jid) |
55 return self._jid_nick[real_jid] | 38 return self._jid_nick[real_jid] |
56 end | 39 end |
57 | |
58 local valid_affiliations = { | |
59 outcast = 0; | |
60 none = 1; | |
61 member = 2; | |
62 admin = 3; | |
63 owner = 4; | |
64 }; | |
65 | |
66 local valid_roles = { | |
67 none = 0; | |
68 visitor = 1; | |
69 participant = 2; | |
70 moderator = 3; | |
71 }; | |
72 | 40 |
73 function room_mt:get_default_role(affiliation) | 41 function room_mt:get_default_role(affiliation) |
74 if affiliation == "owner" or affiliation == "admin" then | 42 if affiliation == "owner" or affiliation == "admin" then |
75 return "moderator"; | 43 return "moderator"; |
76 elseif affiliation == "member" then | 44 elseif affiliation == "member" then |