permissions utilities #42
Aliases: permissions utilities, Generic Utilities Package
4 verbs · 6 properties · 0 children
Verbs
| Verb | Spec | Flags | Definer | Lines |
|---|---|---|---|---|
controls | this none this | rxd | #42 | 3 |
apply | this none this | rxd | #42 | 22 |
caller | this none this | rxd | #42 | 6 |
controls_prop*erty controls_verb | this none this | rxd | #42 | 7 |
Properties
| Property | Definer | Flags | Owner | Value |
|---|---|---|---|---|
help_msg | #79 | rc | #2 | list of 16{"Miscellaneous routines for permissions checking", "", "For a complete description of a given verb, do `help $perm_utils:verbname'", "", ":controls(who,what) -- can who write on object what", ":controls_property(who,what,propname) -- can who write on what.propname", "These routines check write flags and also the wizardliness of `who'.", "", "(these last two probably belong on $code_utils)", "", ":apply(permstring,mods)", " -- used by @chmod to apply changes (e.g., +x) ", " to a given permissions string", "", ":caller()", " -- returns the first caller in the callers() stack distinct from `this'"} |
key | #1 | c | #2 | <clear> |
aliases | #1 | rc | #2 | {"permissions utilities", "Generic Utilities Package"} |
description | #1 | rc | #2 | {"This is the permissions utilities utility package. See `help $perm_utils' for more details."} |
object_size | #1 | r | #36 | {3788, -1090650497} |
html | #1 | rc | #2 | <clear> |
Ancestry
Ancestors (nearest first): #79 Generic Utilities Package → #1 Root Class
Children: none
Source
controls
Referenced by
- #0:bf_chparent line 12:
$perm_utils:controls - #0:bf_chparent line 20:
$perm_utils:controls - #0:bf_add_verb line 8:
$perm_utils:controls - #0:bf_add_verb line 11:
$perm_utils:controls - #0:bf_add_property line 8:
$perm_utils:controls - #0:bf_add_property line 10:
$perm_utils:controls - #0:bf_recycle line 4:
$perm_utils:controls - #0:bf_set_verb_info line 6:
$perm_utils:controls - #0:bf_set_verb_info line 15:
$perm_utils:controls - #1:initialize line 4:
$perm_utils:controls - #1:recycle line 1:
$perm_utils:controls - #1:set_aliases line 8:
$perm_utils:controls - #1:set_description line 3:
$perm_utils:controls - #1:set_message line 9:
$perm_utils:controls - #1:examine_key line 5:
$perm_utils:controls - #1:get_message line 8:
$perm_utils:controls - #1:examine_verb_ok line 4:
$perm_utils:controls - #1:hidden_verbs line 5:
$perm_utils:controls - #3:confunc line 1:
$perm_utils:controls - #3:disfunc line 1:
$perm_utils:controls - #3:@exits line 1:
$perm_utils:controls - #3:@entrances line 1:
$perm_utils:controls - #3:recycle line 2:
$perm_utils:controls - #3:@eject line 8:
$perm_utils:controls - #3:accept_for_abode line 2:
$perm_utils:controls - #3:@resident*s line 1:
$perm_utils:controls - #3:moveto line 1:
$perm_utils:controls - #3:exits line 1:
$perm_utils:controls - #3:examine_key line 5:
$perm_utils:controls - #4:build_option line 3:
$perm_utils:controls - #4:set_build_option line 4:
$perm_utils:controls - #5:examine_key line 5:
$perm_utils:controls - #6:confunc line 1:
$perm_utils:controls - #6:disfunc line 1:
$perm_utils:controls - #6:initialize line 1:
$perm_utils:controls - #6:my_huh line 3:
$perm_utils:controls - #6:notify line 6:
$perm_utils:controls - #6:notify_lines line 1:
$perm_utils:controls - #6:@linelen*gth line 1:
$perm_utils:controls - #6:set_gaglist line 2:
$perm_utils:controls - #6:@ungag line 1:
$perm_utils:controls - #6:@move line 8:
$perm_utils:controls - #6:@eject line 9:
$perm_utils:controls - #6:display_option line 2:
$perm_utils:controls - #6:edit_option line 2:
$perm_utils:controls - #6:set_mail_option line 6:
$perm_utils:controls - #6:set_name line 6:
$perm_utils:controls - #6:set_aliases line 10:
$perm_utils:controls - #6:set_gender line 4:
$perm_utils:controls - #6:set_brief line 4:
$perm_utils:controls - #6:@exam*ine line 18:
$perm_utils:controls - #6:add_feature line 5:
$perm_utils:controls - #6:remove_feature line 4:
$perm_utils:controls - #6:ownership_quota line 1:
$perm_utils:controls - #6:set_linelength line 5:
$perm_utils:controls - #6:set_pagelength line 3:
$perm_utils:controls - #6:set_home line 7:
$perm_utils:controls - #6:erase_paranoid_data line 1:
$perm_utils:controls - #6:@move-new line 22:
$perm_utils:controls - #6:notify_lines_suspended line 1:
$perm_utils:controls - #6:recycle line 1:
$perm_utils:controls - #6:gc_gaglist line 1:
$perm_utils:controls - #7:recycle line 1:
$perm_utils:controls - #7:set_name line 1:
$perm_utils:controls - #7:set_aliases line 1:
$perm_utils:controls - #7:moveto line 1:
$perm_utils:controls - #7:examine_key line 5:
$perm_utils:controls - #8:set_opened line 1:
$perm_utils:controls - #8:@opacity line 1:
$perm_utils:controls - #8:set_opaque line 1:
$perm_utils:controls - #9:text line 2:
$perm_utils:controls - #9:set_text line 3:
$perm_utils:controls - #9:is_writable_by line 3:
$perm_utils:controls - #13:debug line 1:
$perm_utils:controls - #14:repair line 4:
$perm_utils:controls - #14:restore_from line 15:
$perm_utils:controls - #14:restore_from line 15:
$perm_utils:controls - #15:eject line 1:
$perm_utils:controls - #24:set_property_flags line 17:
$perm_utils:controls - #24:check_prog_restricted line 2:
$perm_utils:controls - #25:load line 5:
$perm_utils:controls - #30:initialize line 2:
$perm_utils:controls - #31:disfunc line 1:
$perm_utils:controls - #31:confunc line 1:
$perm_utils:controls - #31:set_name line 2:
$perm_utils:controls - #32:show_who_listing line 116:
$perm_utils:controls - #37:insert line 4:
$perm_utils:controls - #37:delete line 4:
$perm_utils:controls - #37:delete2 line 8:
$perm_utils:controls - #37:clearall line 2:
$perm_utils:controls - #37:clearall_big line 1:
$perm_utils:controls - #37:_kill_subtrees line 3:
$perm_utils:controls - #39:load line 4:
$perm_utils:controls - #40:receive_message line 2:
$perm_utils:controls - #40:parse_message_seq line 11:
$perm_utils:controls - #40:notify_mail line 6:
$perm_utils:controls - #40:current_message line 6:
$perm_utils:controls - #40:get_current_message line 4:
$perm_utils:controls - #40:set_current_message line 3:
$perm_utils:controls - #40:make_current_message line 12:
$perm_utils:controls - #40:kill_current_message line 4:
$perm_utils:controls - #40:@subscribe*-quick line 34:
$perm_utils:controls - #40:mail_option line 3:
$perm_utils:controls - #40:send_self_netmail line 3:
$perm_utils:controls - #40:expire_old_messages line 2:
$perm_utils:controls - #40:make_current_message_new line 12:
$perm_utils:controls - #40:expirable_msg_seq line 3:
$perm_utils:controls - #40:confunc line 1:
$perm_utils:controls - #45:set_aliases line 3:
$perm_utils:controls - #45:is_writable_by line 1:
$perm_utils:controls - #45:add_forward line 12:
$perm_utils:controls - #45:add_forward line 12:
$perm_utils:controls - #45:delete_forward line 12:
$perm_utils:controls - #45:delete_forward line 12:
$perm_utils:controls - #45:add_notify line 11:
$perm_utils:controls - #45:add_notify line 11:
$perm_utils:controls - #45:delete_notify line 12:
$perm_utils:controls - #45:delete_notify line 12:
$perm_utils:controls - #45:initialize line 1:
$perm_utils:controls - #45:set_name line 2:
$perm_utils:controls - #45:@validate line 6:
$perm_utils:controls - #45:@register line 14:
$perm_utils:controls - #46:send_message line 22:
$perm_utils:controls - #46:is_readable_by line 8:
$perm_utils:controls - #46:resend_message line 14:
$perm_utils:controls - #48:set_* line 1:
$perm_utils:controls - #50:ok line 4:
$perm_utils:controls - #50:invoke line 5:
$perm_utils:controls - #50:@flush line 7:
$perm_utils:controls - #50:@stateprop line 1:
$perm_utils:controls - #50:@rmstateprop line 1:
$perm_utils:controls - #50:initialize line 1:
$perm_utils:controls - #50:set_stateprops line 2:
$perm_utils:controls - #50:do_flush line 2:
$perm_utils:controls - #51:object_match_failed line 5:
$perm_utils:controls - #52:property_conflicts line 10:
$perm_utils:controls - #52:property_conflicts line 10:
$perm_utils:controls - #52:descendants_with_property_suspended line 5:
$perm_utils:controls - #52:disown line 9:
$perm_utils:controls - #52:disown line 13:
$perm_utils:controls - #54:burn line 2:
$perm_utils:controls - #54:do_burn line 1:
$perm_utils:controls - #56:object_match_failed line 4:
$perm_utils:controls - #56:player_match_result line 9:
$perm_utils:controls - #56:yes_or_no line 8:
$perm_utils:controls - #56:do_huh line 3:
$perm_utils:controls - #56:do_huh line 7:
$perm_utils:controls - #58:@copy line 35:
$perm_utils:controls - #58:@copy line 38:
$perm_utils:controls - #58:@check-p*roperty line 8:
$perm_utils:controls - #58:set_eval_env line 3:
$perm_utils:controls - #58:@disown line 26:
$perm_utils:controls - #58:@disown line 31:
$perm_utils:controls - #58:prog_option line 3:
$perm_utils:controls - #58:set_prog_option line 4:
$perm_utils:controls - #58:set_eval_subs line 2:
$perm_utils:controls - #59:move_verb line 16:
$perm_utils:controls - #59:move_verb line 16:
$perm_utils:controls - #59:move_verb line 22:
$perm_utils:controls - #59:move_prop*erty line 11:
$perm_utils:controls - #59:move_prop*erty line 11:
$perm_utils:controls - #59:move_prop*erty line 17:
$perm_utils:controls - #62:disfunc line 2:
$perm_utils:controls - #62:keep_clean line 1:
$perm_utils:controls - #63:_recycle line 4:
$perm_utils:controls - #63:show*-history line 1:
$perm_utils:controls - #68:add_name line 5:
$perm_utils:controls - #68:remove_name line 2:
$perm_utils:controls - #71:add_cleanup line 1:
$perm_utils:controls - #71:remove_cleanup line 1:
$perm_utils:controls - #71:move_players_home line 1:
$perm_utils:controls - #71:scheduled_cleanup line 2:
$perm_utils:controls - #71:do_move_players_home line 1:
$perm_utils:controls - #72:open line 13:
$perm_utils:controls - #74:set_feature_ok line 1:
$perm_utils:controls - #74:set_feature_verbs line 1:
$perm_utils:controls - #74:initialize line 1:
$perm_utils:controls - #80:parse_create_args line 5:
$perm_utils:controls - #80:can_peek line 1:
$perm_utils:controls - #81:add_data line 2:
$perm_utils:controls - #81:get_data line 2:
$perm_utils:controls - #81:erase_data line 2:
$perm_utils:controls - #81:set_kept_lines line 3:
$perm_utils:controls - #82:display_quota line 11:
$perm_utils:controls - #82:get_quota line 1:
$perm_utils:controls - #82:can_peek line 2:
$perm_utils:controls - #88:reject_password line 7:
$perm_utils:controls - #88:trivial_check line 8:
$perm_utils:controls - #88:check_email line 2:
$perm_utils:controls - #88:check_hosts line 2:
$perm_utils:controls - #90:confunc line 2:
$perm_utils:controls - #90:disfunc line 2:
$perm_utils:controls - #90:clear_refusals line 2:
$perm_utils:controls - #90:set_default_refusal_time line 2:
$perm_utils:controls - #90:receive_message line 2:
$perm_utils:controls - #90:set_owned_objects line 4:
$perm_utils:controls - #94:set_gender line 4:
$perm_utils:controls - #95:set_ansi_option line 4:
$perm_utils:controls - #95:notify line 1:
$perm_utils:controls - #95:set_name line 2:
$perm_utils:controls - #95:set_aliases line 2:
$perm_utils:controls - #95:confunc line 1:
$perm_utils:controls - #95:set_ansi_title line 3:
$perm_utils:controls - #98:person_match_failed line 4:
$perm_utils:controls - #99:kill_task*s line 10:
$perm_utils:controls - #99:kill line 37:
$perm_utils:controls - #99:look_self line 10:
$perm_utils:controls - #99:look_self line 10:
$perm_utils:controls - #99:get_task_display line 16:
$perm_utils:controls - #99:get_task_display line 16:
$perm_utils:controls - #104:disfunc line 1:
$perm_utils:controls - #118:add_virtual_exit line 1:
$perm_utils:controls - #118:add_virtual_exit line 10:
$perm_utils:controls - #118:remove_virtual_exit line 1:
$perm_utils:controls - #118:@remove-vexit line 1:
$perm_utils:controls - #118:@vlock line 9:
$perm_utils:controls - #118:@vunlock line 1:
$perm_utils:controls - #118:con*vert-exit line 4:
$perm_utils:controls - #118:@add-ventrance line 1:
$perm_utils:controls - #118:@remove-ventrance line 1:
$perm_utils:controls - #123:do_burn line 1:
$perm_utils:controls
Source
1"$perm_utils:controls(who, what)"; 2"Is WHO allowed to hack on WHAT?"; 3return (args[1] == args[2].owner) || args[1].wizard;
apply
Referenced by
- #58:@prop*erty line 37:
$perm_utils:apply - #58:@chmod*# line 31:
$perm_utils:apply - #58:@chmod*# line 55:
$perm_utils:apply - #58:@chmod*# line 72:
$perm_utils:apply - #58:@verb line 40:
$perm_utils:apply
Source
1":apply(permstring,mods) => new permstring."; 2"permstring is a permissions string, mods is a concatenation of strings of the form +<letters>, !<letters>, or -<letters>, where <letters> is a string of letters as might appear in a permissions string (`+' adds the specified permissions, `-' or `!' removes them; `-' and `!' are entirely equivalent)."; 3{perms, mods} = args; 4if ((!mods) || (!index("!-+", mods[1]))) 5return mods; 6endif 7i = 1; 8while (i <= length(mods)) 9if (mods[i] == "+") 10while (((i = i + 1) <= length(mods)) && (!index("!-+", mods[i]))) 11if (!index(perms, mods[i])) 12perms = perms + mods[i]; 13endif 14endwhile 15else 16"mods[i] must be ! or -"; 17while (((i = i + 1) <= length(mods)) && (!index("!-+", mods[i]))) 18perms = strsub(perms, mods[i], ""); 19endwhile 20endif 21endwhile 22return perms;
caller
Referenced by
none
Source
1stage = 1; 2{?lineno = 0} = args; 3c = callers(lineno); 4while (((stage = stage + 1) < length(c)) && (c[stage][1] == c[1][1])) 5endwhile 6return c[stage];
controls_prop*erty controls_verb
Referenced by
none
Source
1"Syntax: controls_prop(OBJ who, OBJ what, STR propname) => 0 | 1"; 2" controls_verb(OBJ who, OBJ what, STR verbname) => 0 | 1"; 3""; 4"Is WHO allowed to hack on WHAT's PROPNAME? Or VERBNAME?"; 5{who, what, name} = args; 6bi = (verb == "controls_verb") ? "verb_info" | "property_info"; 7return who.wizard || (who == call_function(bi, what, name)[1]);