Switch to edit mode.
Name(s): tell_www_page1: player:isa($webber) && caller == $www || raise(E_PERM) 2: set_task_perms(player.user) 3: {?object = #-1} = args 4: if (!valid(object)) 5: return pass(@args) 6: endif 7: $www.error:OK("Cache-Control: no-cache") 8: url = $www:find_ref(object) 9: prepstr = $string_utils:substitute(prepstr, $www.subst) 10: edit = 0 11: for x in [1..length(prepstr)] 12: if (!(prepstr[x] in {".", ":", "!", ",", ";"})) 13: edit = 1 14: break x 15: endif 16: endfor 17: player:tell("<HTML><HEAD><META NAME='robots' CONTENT=\"noindex,nofollow\"><TITLE>", $name, ": ", edit ? "Edit " | "Examine ", object.name, " (", object, ")</TITLE><LINK href='http://static.moo.ca:8082/web.css' rel='stylesheet' type='text/css'><link href='", $www:fileURL(this, "code.css"), "' rel='stylesheet' type='text/css'><link REL='icon' HREF='/favicon.ico' TYPE='image/x-ico'><link REL='SHORTCUT ICON' HREF='/favicon.ico'></HEAD><BODY BGCOLOR=\"#FFFFFF\">") 18: if (edit) 19: player:tell("<H1>View/Edit <A HREF=\"/", url, "\">", object, "</A>", $html_utils:literal_text(prepstr), "</H1>") 20: if (prepstr[1] == "." || prepstr[1] == ",") 21: this:edit_prop(prepstr[2..$], object) 22: elseif (prepstr[1] == ":" || prepstr[1] == ";") 23: this:edit_verb(prepstr[2..$], object) 24: elseif (prepstr[1] == "!") 25: this:edit_file(prepstr[2..$], object) 26: endif 27: else 28: if (player.referer && $www:previous_object() != object && iobjstr) 29: "We have an unknown form refering an chmod/chown to us." 30: $msg:mtell("www_error", "Warning! Previous page doesn't appear to be this one!") 31: player:tell("For security reasons the chmod or chown will not be made. Refering page: [", player.referer, "]") 32: elseif ($www:parse_POST("chmod")) 33: player.user:controls(object) || raise(E_PERM) 34: object.r = !!$www:parse_POST("r") 35: object.w = !!$www:parse_POST("w") 36: object.f = !!$www:parse_POST("f") 37: player:tell("<B>Object chmoded.</B>") 38: elseif ((x = $www:parse_POST("chown")) && x != $su:nn(object.owner)) 39: newowner = $su:match_nn_object(x, object.location, player.user) 40: valid(newowner) || (newowner = $su:match_player(x, player.user)) 41: if (newowner == object.owner) 42: "Don't touch it." 43: elseif (!player.user.wizard) 44: $msg:mtell("www_error", "Permission denied, only wizards can change the owner.") 45: elseif (!valid(newowner)) 46: $msg:mtell("www_error", "Couldn't match new owner (" + x + ").") 47: elseif (!newowner:isa($accountable)) 48: $msg:mtell("www_error", $su:nn(newowner) + " doesn't look like a reasonable owner. Ownership not changed.") 49: else 50: player:tell("<B>Chowning object to ", $su:nn(newowner), ".</B><BR>") 51: oldowner = object.owner 52: x = $wiz_utils:set_owner(object, newowner, 1) 53: if (typeof(x) == $ERR) 54: $msg:mtell("www_error", tostr("Error during chown (", x, ").")) 55: elseif (oldowner.wizard == newowner.wizard) 56: for vnum in [1..length(verbs(object))] 57: info = verb_info(object, vnum) 58: if (info[1] == oldowner) 59: info[1] == newowner 60: set_verb_info(object, vnum, info) 61: endif 62: endfor 63: "+c props were chowned in $wiz_utils:set_owner" 64: endif 65: endif 66: endif 67: player:tell("<H1>Examining <A HREF=\"/", url, "\">", object.name, " (", object, ")</A></H1>") 68: this:tell_general(object) 69: if (index(prepstr, ",")) 70: this:tell_props(object) 71: this:tell_iprops(object) 72: elseif (index(prepstr, ".")) 73: this:tell_props(object) 74: player:tell("View the <A HREF=\"/", url, ",\">inherited properties</A>.") 75: endif 76: if (index(prepstr, ";")) 77: this:tell_verbs(object) 78: this:tell_iverbs(object) 79: elseif (index(prepstr, ":")) 80: this:tell_verbs(object) 81: player:tell("View the <A HREF=\"/", url, ";\">inherited verbs</A>.") 82: endif 83: index(prepstr, "!") && this:tell_files(object) 84: endif 85: this:tell_www_tail(object) 86: player:tell("</BODY></HTML>") 87: "Last modified by whiz (#3135) on Wed Jul 28 21:22:40 2010 UTC."