Mercurial > prosody-hg
comparison plugins/mod_authz_internal.lua @ 12663:cf88f6b03942
mod_authz_internal: Expose convenience method to test if user can assume role
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Thu, 18 Aug 2022 10:37:59 +0100 |
| parents | 07424992d7fc |
| children | 427dd01f0864 |
comparison
equal
deleted
inserted
replaced
| 12662:07424992d7fc | 12663:cf88f6b03942 |
|---|---|
| 177 stored_roles._default = nil; | 177 stored_roles._default = nil; |
| 178 for role_name in pairs(stored_roles) do | 178 for role_name in pairs(stored_roles) do |
| 179 stored_roles[role_name] = role_registry[role_name]; | 179 stored_roles[role_name] = role_registry[role_name]; |
| 180 end | 180 end |
| 181 return stored_roles; | 181 return stored_roles; |
| 182 end | |
| 183 | |
| 184 function user_can_assume_role(user, role_name) | |
| 185 local primary_role = get_user_role(user); | |
| 186 if primary_role and primary_role.role_name == role_name then | |
| 187 return true; | |
| 188 end | |
| 189 local secondary_roles = get_user_secondary_roles(user); | |
| 190 if secondary_roles and secondary_roles[role_name] then | |
| 191 return true; | |
| 192 end | |
| 193 return false; | |
| 182 end | 194 end |
| 183 | 195 |
| 184 -- This function is *expensive* | 196 -- This function is *expensive* |
| 185 function get_users_with_role(role_name) | 197 function get_users_with_role(role_name) |
| 186 local function role_filter(username, default_role) --luacheck: ignore 212/username | 198 local function role_filter(username, default_role) --luacheck: ignore 212/username |
