From: Jeremy Stanley <fungi@yuggoth.org>
Date: Wed, 30 Sep 2020 18:07:46 +0000 (+0000)
Subject: Streamline can_run access control method
X-Git-Tag: 0.3.0~12
X-Git-Url: https://mudpy.org/gitweb?a=commitdiff_plain;h=c7ee3d6c896f1534d8da46e973700a26b9feb706;p=mudpy.git

Streamline can_run access control method

Minor rework of can_run() to replace the chain of elifs with simple
short-circuiting conditions each with its own return() so that it's
clearer this operates in a "first match" model.
---

diff --git a/mudpy/misc.py b/mudpy/misc.py
index 044614f..fd4e0ac 100644
--- a/mudpy/misc.py
+++ b/mudpy/misc.py
@@ -189,22 +189,18 @@ class Element:
 
         # has to be in the commands group
         if command not in self.universe.groups["command"].values():
-            result = False
+            return(False)
 
         # avatars of administrators can run any command
-        elif self.owner and self.owner.account.get("administrator"):
-            result = True
+        if self.owner and self.owner.account.get("administrator"):
+            return(True)
 
         # everyone can run non-administrative commands
-        elif not command.get("administrative"):
-            result = True
+        if not command.get("administrative"):
+            return(True)
 
         # otherwise the command cannot be run by this actor
-        else:
-            result = False
-
-        # pass back the result
-        return result
+        return(False)
 
     def update_location(self):
         """Make sure the location's contents contain this element."""