Monday, November 08, 2010 at 12:04 AM.


on memberCanEdit (adrMsgTable, adrMemberInfo, pta=nil) {
	<<Can a member edit a given message?
		<<Default: only the original poster can edit a certain message.
		<<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.