Mercurial > prosody-hg
comparison util/roles.lua @ 12987:2cf8d98d8a28
util.roles: Implement a serialization preparation metamethod
Should be able to roundtrip trough serialization. Also nice for debug
and logging purposes where you might want more details than what the
__tostring method provides.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sun, 26 Mar 2023 13:13:31 +0200 |
| parents | d10957394a3c |
| children |
comparison
equal
deleted
inserted
replaced
| 12986:895a82c5d8d4 | 12987:2cf8d98d8a28 |
|---|---|
| 71 permissions[k] = v; | 71 permissions[k] = v; |
| 72 end | 72 end |
| 73 return setmetatable(new_role, role_mt); | 73 return setmetatable(new_role, role_mt); |
| 74 end | 74 end |
| 75 | 75 |
| 76 function role_mt:__freeze() | |
| 77 local t = { | |
| 78 id = self.id; | |
| 79 name = self.name; | |
| 80 description = self.description; | |
| 81 default = self.default; | |
| 82 priority = self.priority; | |
| 83 inherits = self.inherits; | |
| 84 permissions = self[permissions_key]; | |
| 85 }; | |
| 86 return t; | |
| 87 end | |
| 88 | |
| 76 function role_methods:clone(overrides) | 89 function role_methods:clone(overrides) |
| 77 return new(self, overrides); | 90 return new(self, overrides); |
| 78 end | 91 end |
| 79 | 92 |
| 80 function role_methods:set_permission(permission_name, policy, overwrite) | 93 function role_methods:set_permission(permission_name, policy, overwrite) |
