X-Git-Url: https://mudpy.org/gitweb?p=mudpy.git;a=blobdiff_plain;f=mudpy%2Fmisc.py;h=e9845d5c349678d4f789f31762c9211c03b4651f;hp=babd42f04dd6e7e4612dec3a43caa5bb5629dad4;hb=4f7b0a6280ab17e1ccfd4aa603cdd647e92ac12b;hpb=0de1cbedcdff936f461aa6b9421cb925295bba10 diff --git a/mudpy/misc.py b/mudpy/misc.py index babd42f..e9845d5 100644 --- a/mudpy/misc.py +++ b/mudpy/misc.py @@ -186,7 +186,8 @@ class Element: def is_restricted(self): """Boolean check whether command is administrative or debugging.""" - return(self.get("administrative", False)) + return( + self.get("administrative", False) or self.get("debugging", False)) def is_admin(self): """Boolean check whether an actor is controlled by an admin owner.""" @@ -199,6 +200,10 @@ class Element: if command not in self.universe.groups["command"].values(): return(False) + # debugging commands are not allowed outside debug mode + if command.get("debugging") and not self.universe.debug_mode(): + return(False) + # avatars of administrators can run any command if self.is_admin(): return(True) @@ -481,6 +486,10 @@ class Universe: if fallback not in self.files: mudpy.data.Data(fallback, self, flags=flags) + def debug_mode(self): + """Boolean method to indicate whether unsafe debugging is enabled.""" + return self.groups["mudpy"]["limit"].get("debug", False) + class User: @@ -2112,6 +2121,8 @@ def setup(): log("Running version: %s" % universe.versions.version, 1) log("Initial directory: %s" % universe.startdir, 1) log("Command line: %s" % " ".join(sys.argv), 1) + if universe.debug_mode(): + log("WARNING: Unsafe debugging mode is enabled!", 6) # pass the initialized universe back return universe