X-Git-Url: https://mudpy.org/gitweb?p=mudpy.git;a=blobdiff_plain;f=mudpy%2Fmisc.py;h=7478f3fde2ece22f1be9a876b218c079e69bf911;hp=ebccc268b07c0dfe53104415a805329f17f4e7f5;hb=d45fa0a36ab90c8fbe96e108b9268b41ff7ece36;hpb=347ddf4408c384adc4ac9a449595405c2b2fce47 diff --git a/mudpy/misc.py b/mudpy/misc.py index ebccc26..7478f3f 100644 --- a/mudpy/misc.py +++ b/mudpy/misc.py @@ -57,7 +57,11 @@ class Element: # parse out appropriate category and subkey names, add to list if self.key.find(":") > 0: + # TODO(fungi) this can be removed once old_style Elements + # are no longer needed self.category, self.subkey = self.key.split(":", 1) + elif self.key.find(".") > 0: + self.category, self.subkey = self.key.split(".", 1)[-2:] else: self.category = "other" self.subkey = self.key @@ -73,10 +77,6 @@ class Element: # record or reset a pointer to the origin file self.origin = self.universe.files[origin.source] - # add a data section to the origin if necessary - if self.key not in self.origin.data: - self.origin.data[self.key] = {} - # add or replace this element in the universe self.universe.contents[self.key] = self self.universe.categories[self.category][self.subkey] = self @@ -88,7 +88,11 @@ class Element: def destroy(self): """Remove an element from the universe and destroy it.""" - del(self.origin.data[self.key]) + if self.old_style: + del self.origin.data[self.key] + else: + for facet in self.facethash: + del self.origin.data[".".join((self.key, facet))] del self.universe.categories[self.category][self.subkey] del self.universe.contents[self.key] del self @@ -156,6 +160,8 @@ class Element: "disallowed") if facet in ["loglevel"]: value = int(value) + elif facet in ["administrator"]: + value = bool(value) if not self.has_facet(facet) or not self.get(facet) == value: if self.old_style: if self.key not in self.origin.data: @@ -679,11 +685,15 @@ class User: def authenticate(self): """Flag the user as authenticated and disconnect duplicates.""" if self.state is not "authenticated": - log("User " + self.account.get("name") + " logged in.", 2) self.authenticated = True if ("mudpy.limit" in universe.contents and self.account.subkey in universe.contents["mudpy.limit"].get("admins")): - self.account.set("administrator", "True") + self.account.set("administrator", True) + log("Administrator %s authenticated." % + self.account.get("name"), 2) + else: + # log("User %s authenticated." % self.account.get("name"), 2) + log("User %s authenticated." % self.account.subkey, 2) def show_menu(self): """Send the user their current menu.""" @@ -1723,7 +1733,7 @@ def handler_entering_account_name(user): # otherwise, this could be a brand new user else: - user.account = Element("account:" + name, universe, old_style=True) + user.account = Element("account.%s" % name, universe) user.account.set("name", name) log("New user: " + name, 2) user.state = "checking_new_account_name"