Monday, November 08, 2010 at 12:04 AM.
system.verbs.builtins.mainResponder.discuss.memberCanEdit
on memberCanEdit (adrMsgTable, adrMemberInfo, pta=nil) {
<<Can a member edit a given message?
<<Default: only the original poster can edit a certain message.
<<Changes:
<<10/10/00; 6:27:03 PM by JES
<<Added pta as an optional parameter.
if pta == nil {
pta = html.getPageTableAddress ()};
on defaultCheck () {
<<The editor must be the original poster.
local (lowerMember = string.lower (nameOf (adrMemberInfo^)));
if lowerMember != string.lower (adrMsgTable^.member) {
return (false)};
return (true)};
local (adrCallback = @config.mainResponder.callbacks.memberCanEdit);
if not defined (adrCallback^) {
new (tableType, adrCallback);
return (defaultCheck ())};
pta^.flMemberCanEdit = defaultCheck (); //callbacks can now what the default says
pta^.adrMsgToEdit = adrMsgTable; //callbacks can get the address of the message table
<<If a callback scriptErrors, then no editing is permitted.
<<Otherwise, look at pta^.flMemberCanEdit when finished.
try { //call the callbacks
mainResponder.callbackLoop (adrCallback, pta)}
else { //scriptError to over-ride all callbacks
return (false)};
return (pta^.flMemberCanEdit)}
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.