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
parent 12975:d10957394a3c
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)