diff --git a/evennia/commands/default/account.py b/evennia/commands/default/account.py index b50f55a8e0..7eda54e75c 100644 --- a/evennia/commands/default/account.py +++ b/evennia/commands/default/account.py @@ -23,7 +23,7 @@ from builtins import range import time from django.conf import settings from evennia.server.sessionhandler import SESSIONS -from evennia.utils import utils, create, search, evtable +from evennia.utils import utils, create, logger, search, evtable COMMAND_DEFAULT_CLASS = utils.class_from_module(settings.COMMAND_DEFAULT_CLASS) @@ -171,6 +171,7 @@ class CmdCharCreate(COMMAND_DEFAULT_CLASS): new_character.db.desc = "This is a character." self.msg("Created new character %s. Use |w@ic %s|n to enter the game as this character." % (new_character.key, new_character.key)) + logger.log_sec('Character Created: %s (Caller: %s, IP: %s).' % (new_character, account, self.session.address)) class CmdCharDelete(COMMAND_DEFAULT_CLASS): @@ -214,6 +215,7 @@ class CmdCharDelete(COMMAND_DEFAULT_CLASS): caller.db._playable_characters = [pc for pc in caller.db._playable_characters if pc != delobj] delobj.delete() self.msg("Character '%s' was permanently deleted." % key) + logger.log_sec('Character Deleted: %s (Caller: %s, IP: %s).' % (key, account, self.session.address)) else: self.msg("Deletion was aborted.") del caller.ndb._char_to_delete @@ -279,8 +281,10 @@ class CmdIC(COMMAND_DEFAULT_CLASS): try: account.puppet_object(session, new_character) account.db._last_puppet = new_character + logger.log_sec('Puppet Success: (Caller: %s, Target: %s, IP: %s).' % (account, new_character, self.session.address)) except RuntimeError as exc: self.msg("|rYou cannot become |C%s|n: %s" % (new_character.name, exc)) + logger.log_sec('Puppet Failed: %s (Caller: %s, Target: %s, IP: %s).' % (exc, account, new_character, self.session.address)) # note that this is inheriting from MuxAccountLookCommand, @@ -641,6 +645,7 @@ class CmdPassword(COMMAND_DEFAULT_CLASS): account.set_password(newpass) account.save() self.msg("Password changed.") + logger.log_sec('Password Changed: %s (Caller: %s, IP: %s).' % (account, account, self.session.address)) class CmdQuit(COMMAND_DEFAULT_CLASS): diff --git a/evennia/commands/default/admin.py b/evennia/commands/default/admin.py index fc90277127..917612c882 100644 --- a/evennia/commands/default/admin.py +++ b/evennia/commands/default/admin.py @@ -9,7 +9,7 @@ import re from django.conf import settings from evennia.server.sessionhandler import SESSIONS from evennia.server.models import ServerConfig -from evennia.utils import evtable, search, class_from_module +from evennia.utils import evtable, logger, search, class_from_module COMMAND_DEFAULT_CLASS = class_from_module(settings.COMMAND_DEFAULT_CLASS) @@ -95,6 +95,9 @@ class CmdBoot(COMMAND_DEFAULT_CLASS): for session in boot_list: session.msg(feedback) session.account.disconnect_session_from_account(session) + + if pobj and boot_list: + logger.log_sec('Booted: %s (Reason: %s, Caller: %s, IP: %s).' % (pobj, reason, caller, self.session.address)) # regex matching IP addresses with wildcards, eg. 233.122.4.* @@ -203,6 +206,7 @@ class CmdBan(COMMAND_DEFAULT_CLASS): banlist.append(bantup) ServerConfig.objects.conf('server_bans', banlist) self.caller.msg("%s-Ban |w%s|n was added." % (typ, ban)) + logger.log_sec('Banned %s: %s (Caller: %s, IP: %s).' % (typ, ban.strip(), self.caller, self.session.address)) class CmdUnban(COMMAND_DEFAULT_CLASS): @@ -246,8 +250,10 @@ class CmdUnban(COMMAND_DEFAULT_CLASS): ban = banlist[num - 1] del banlist[num - 1] ServerConfig.objects.conf('server_bans', banlist) + value = " ".join([s for s in ban[:2]]) self.caller.msg("Cleared ban %s: %s" % - (num, " ".join([s for s in ban[:2]]))) + (num, value)) + logger.log_sec('Unbanned: %s (Caller: %s, IP: %s).' % (value.strip(), self.caller, self.session.address)) class CmdDelAccount(COMMAND_DEFAULT_CLASS): @@ -317,6 +323,7 @@ class CmdDelAccount(COMMAND_DEFAULT_CLASS): if reason: string += " Reason given:\n '%s'" % reason account.msg(string) + logger.log_sec('Account Deleted: %s (Reason: %s, Caller: %s, IP: %s).' % (account, reason, caller, self.session.address)) account.delete() self.msg("Account %s was successfully deleted." % uname) @@ -445,6 +452,7 @@ class CmdNewPassword(COMMAND_DEFAULT_CLASS): if account.character != caller: account.msg("%s has changed your password to '%s'." % (caller.name, newpass)) + logger.log_sec('Password Changed: %s (Caller: %s, IP: %s).' % (account, caller, self.session.address)) class CmdPerm(COMMAND_DEFAULT_CLASS): @@ -526,6 +534,7 @@ class CmdPerm(COMMAND_DEFAULT_CLASS): else: caller_result.append("\nPermission %s removed from %s (if they existed)." % (perm, obj.name)) target_result.append("\n%s revokes the permission(s) %s from you." % (caller.name, perm)) + logger.log_sec('Permissions Deleted: %s, %s (Caller: %s, IP: %s).' % (perm, obj, caller, self.session.address)) else: # add a new permission permissions = obj.permissions.all() @@ -547,6 +556,8 @@ class CmdPerm(COMMAND_DEFAULT_CLASS): caller_result.append("\nPermission '%s' given to %s (%s)." % (perm, obj.name, plystring)) target_result.append("\n%s gives you (%s, %s) the permission '%s'." % (caller.name, obj.name, plystring, perm)) + logger.log_sec('Permissions Added: %s, %s (Caller: %s, IP: %s).' % (obj, perm, caller, self.session.address)) + caller.msg("".join(caller_result).strip()) if target_result: obj.msg("".join(target_result).strip()) diff --git a/evennia/commands/default/comms.py b/evennia/commands/default/comms.py index d9fe0b0d20..90ef0a0086 100644 --- a/evennia/commands/default/comms.py +++ b/evennia/commands/default/comms.py @@ -14,7 +14,7 @@ from evennia.accounts.models import AccountDB from evennia.accounts import bots from evennia.comms.channelhandler import CHANNELHANDLER from evennia.locks.lockhandler import LockException -from evennia.utils import create, utils, evtable +from evennia.utils import create, logger, utils, evtable from evennia.utils.utils import make_iter, class_from_module COMMAND_DEFAULT_CLASS = class_from_module(settings.COMMAND_DEFAULT_CLASS) @@ -368,6 +368,7 @@ class CmdCdestroy(COMMAND_DEFAULT_CLASS): channel.delete() CHANNELHANDLER.update() self.msg("Channel '%s' was destroyed." % channel_key) + logger.log_sec('Channel Deleted: %s (Caller: %s, IP: %s).' % (channel_key, caller, self.session.address)) class CmdCBoot(COMMAND_DEFAULT_CLASS): @@ -433,6 +434,7 @@ class CmdCBoot(COMMAND_DEFAULT_CLASS): # disconnect account channel.disconnect(account) CHANNELHANDLER.update() + logger.log_sec('Channel Boot: %s (Channel: %s, Reason: %s, Caller: %s, IP: %s).' % (account, channel, reason, caller, self.session.address)) class CmdCemit(COMMAND_DEFAULT_CLASS):