[Turn off line numbering]1: arg @parent; 2: var par, data, out; 3: 4: if (!.has_flag('variables, sender())) 5: throw(~perm, sender().namef('ref) + " is not allowed to read variables on " + .namef('ref)); 6: if (parent) { 7: if (type(parent[1]) != 'objnum) 8: throw(~type, parent[1] + " is not an object."); 9: return (> data(parent[1]) <); 10: } else { 11: data = (> data() <); 12: out = #[]; 13: for par in (data) { 14: // if the parent doesn't exist anymore, just let them see the data. 15: if (!valid(par[1]) || par[1].has_flag('variables, sender())) 16: out = out.add(par[1], par[2]); 17: else 18: out = out.add(par[1], ["*** Permission Denied ***"]); 19: } 20: return out; 21: }
// Created as a part of ColdCore, see: @help Credit