Comparison

core/usermanager.lua @ 10640:5622eda7c5c5

usermanager: Add get_roles() function
author Matthew Wild <mwild1@gmail.com>
date Wed, 05 Feb 2020 17:41:14 +0000
parent 10635:675d9fbcbaed
child 10659:8f95308c3c45
comparison
equal deleted inserted replaced
10639:08e3063eb1ac 10640:5622eda7c5c5
135 135
136 local function get_provider(host) 136 local function get_provider(host)
137 return hosts[host].users; 137 return hosts[host].users;
138 end 138 end
139 139
140 local function is_admin(jid, host) 140 local function get_roles(jid, host)
141 if host and not hosts[host] then return false; end 141 if host and not hosts[host] then return false; end
142 if type(jid) ~= "string" then return false; end 142 if type(jid) ~= "string" then return false; end
143 143
144 jid = jid_bare(jid); 144 jid = jid_bare(jid);
145 host = host or "*"; 145 host = host or "*";
153 roles = authz_provider.get_user_roles(actor_user); 153 roles = authz_provider.get_user_roles(actor_user);
154 else -- Remote user/JID 154 else -- Remote user/JID
155 roles = authz_provider.get_jid_roles(jid); 155 roles = authz_provider.get_jid_roles(jid);
156 end 156 end
157 157
158 return roles;
159 end
160
161 local function is_admin(jid, host)
162 local roles = get_roles(jid, host);
158 return roles and roles["prosody:admin"]; 163 return roles and roles["prosody:admin"];
159 end 164 end
160 165
161 return { 166 return {
162 new_null_provider = new_null_provider; 167 new_null_provider = new_null_provider;
168 create_user = create_user; 173 create_user = create_user;
169 delete_user = delete_user; 174 delete_user = delete_user;
170 users = users; 175 users = users;
171 get_sasl_handler = get_sasl_handler; 176 get_sasl_handler = get_sasl_handler;
172 get_provider = get_provider; 177 get_provider = get_provider;
178 get_roles = get_roles;
173 is_admin = is_admin; 179 is_admin = is_admin;
174 }; 180 };