[wpdev-commits] xmlscripts/scripts/commands account.py,1.9,1.10
Brought to you by:
rip,
thiagocorrea
From: Richard M. <dr...@us...> - 2004-07-15 20:08:46
|
Update of /cvsroot/wpdev/xmlscripts/scripts/commands In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13974/commands Modified Files: account.py Log Message: Lots of fixes to the account command Forge BaseID's are now checked. Index: account.py =================================================================== RCS file: /cvsroot/wpdev/xmlscripts/scripts/commands/account.py,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** account.py 15 Jul 2004 18:44:24 -0000 1.9 --- account.py 15 Jul 2004 20:08:30 -0000 1.10 *************** *** 51,60 **** from wolfpack.consts import LOG_MESSAGE - usage0 = "Account Command Usage:" - usage1 = "- account create username password" - usage2 = "- account remove username" - usage3 = "- account set username key value" - usage4 = "- account show username key" - # Loads the command def onLoad(): --- 51,54 ---- *************** *** 67,75 **** args = args.strip() if len(args) == 0: ! socket.sysmessage( usage0 ) ! socket.sysmessage( usage1 ) ! socket.sysmessage( usage2 ) ! socket.sysmessage( usage3 ) ! socket.sysmessage( usage4 ) return False elif len( args ) > 0: --- 61,65 ---- args = args.strip() if len(args) == 0: ! usageerror( socket ) return False elif len( args ) > 0: *************** *** 78,111 **** # Error Check if len( args ) >= 5: ! useageerror( socket ) return False ! # One Argument ! if len( args ) == 1: ! action = args[0] ! action = action.lower() ! # Reload Accounts ! if action == 'reload': ! char.log( LOG_MESSAGE, "Reloaded accounts.\n" % char.serial ) ! wolfpack.accounts.reload() ! return True ! # Save Accounts ! elif action == 'save': ! char.log( LOG_MESSAGE, "Saved accounts.\n" % char.serial ) ! wolfpack.accounts.save() ! return True ! else: ! useageerror( socket ) ! return False ! # Two Arguments ! elif len( args ) == 2: ! ( action, username ) = args action = action.lower() username = username.lower() ! # Remove Accounts ! if action == 'remove': ! accountRemove( socket, username ) return True else: ! useageerror( socket ) return False # Three Arguments --- 68,89 ---- # Error Check if len( args ) >= 5: ! usageerror( socket ) return False ! # Four Arguments ! elif len( args ) == 4: ! ( action, username, key, value ) = args action = action.lower() username = username.lower() ! key = key.lower() ! # Error Checking ! if len( action ) == 0 or len( username ) == 0 or len( key ) == 0 or len( value ) == 0: ! usageerror( socket ) ! return False ! # Set Accounts ! elif action.lower() == 'set': ! accountSet( socket, username, key, value ) return True else: ! usageerror( socket ) return False # Three Arguments *************** *** 114,122 **** action = action.lower() username = username.lower() if len( action ) == 0 or len( username ) == 0 or len( key ) == 0: ! useageerror( socket ) return False # Create Accounts ! if action == 'create': accountCreate( socket, username, key ) return True --- 92,101 ---- action = action.lower() username = username.lower() + # Error Checking if len( action ) == 0 or len( username ) == 0 or len( key ) == 0: ! usageerror( socket ) return False # Create Accounts ! elif action == 'create': accountCreate( socket, username, key ) return True *************** *** 126,158 **** return True else: ! useageerror( socket ) return False ! # Four Arguments ! elif len( args ) == 4: ! ( action, username, key, value ) = args action = action.lower() username = username.lower() ! key = key.lower() ! if len( action ) == 0 or len( username ) == 0 or len( key ) == 0 or len( value ) == 0: ! useageerror( socket ) return False ! # Set Accounts ! if action.lower() == 'set': ! accountSet( socket, username, key, value ) return True else: ! useageerror( socket ) return False # Error else: ! useageerror( socket ) return False def usageerror( socket ): ! socket.sysmessage( usage0 ) ! socket.sysmessage( usage1 ) ! socket.sysmessage( usage2 ) ! socket.sysmessage( usage3 ) ! socket.sysmessage( usage4 ) return --- 105,159 ---- return True else: ! usageerror( socket ) return False ! # Two Arguments ! elif len( args ) == 2: ! ( action, username ) = args action = action.lower() username = username.lower() ! # Error Checking ! if len( action ) == 0 or len( username ) == 0: ! usageerror( socket ) return False ! # Remove Accounts ! elif action == 'remove': ! accountRemove( socket, username ) return True else: ! usageerror( socket ) ! return False ! # One Argument ! elif len( args ) == 1: ! action = args[0] ! action = action.lower() ! # Error Checking ! if len( action ) == 0: ! usageerror( socket ) ! return False ! # Reload Accounts ! elif action == 'reload': ! char.log( LOG_MESSAGE, "Reloaded accounts.\n") ! wolfpack.accounts.reload() ! return True ! # Save Accounts ! elif action == 'save': ! char.log( LOG_MESSAGE, "Saved accounts.\n") ! wolfpack.accounts.save() ! return True ! else: ! usageerror( socket ) return False # Error else: ! usageerror( socket ) return False + # Echo usage def usageerror( socket ): ! socket.sysmessage( "Account Command Usage:" ) ! socket.sysmessage( "- account create username password" ) ! socket.sysmessage( "- account set username key value" ) ! socket.sysmessage( "- account set username key value" ) ! socket.sysmessage( "- account show username key" ) return *************** *** 177,183 **** return False else: account.delete() ! socket.sysmessage( "Success: Account %s removed!" % account.name ) ! char.log( LOG_MESSAGE, "Removed account: %s\n" % account.name ) return True # Failure --- 178,185 ---- return False else: + oldname = str( account.name ) account.delete() ! socket.sysmessage( "Success: Account %s removed!" % oldname ) ! char.log( LOG_MESSAGE, "Removed account: %s\n" % oldname ) return True # Failure *************** *** 188,191 **** --- 190,195 ---- # Creates a new account def accountCreate( socket, username, password ): + account = None + characcount = None char = socket.player characcount = wolfpack.accounts.find( char.account.name ) *************** *** 214,218 **** newaccount.acl = 'player' socket.sysmessage( "You created the account successfully!" ) ! char.log( LOG_MESSAGE, "Created account: %s\n" % account.name ) return True # Failure --- 218,222 ---- newaccount.acl = 'player' socket.sysmessage( "You created the account successfully!" ) ! char.log( LOG_MESSAGE, "Created account: %s\n" % newaccount.name ) return True # Failure *************** *** 223,229 **** --- 227,237 ---- # Shows account properties def accountShow( socket, username, key ): + account = None + characcount = None char = socket.player characcount = wolfpack.accounts.find( char.account.name ) account = wolfpack.accounts.find( username ) + if not account: + return False # Usernames are limited to 16 characters in length if len( username ) > 16 or len( username ) == 0: *************** *** 286,292 **** --- 294,308 ---- # Sets account properties def accountSet( socket, username, key, value ): + account = None + characcount = None char = socket.player characcount = wolfpack.accounts.find( char.account.name ) account = wolfpack.accounts.find( username ) + if not account: + socket.sysmessage( "Error: No such account exists." ) + return False + if len( value ) == 0: + socket.sysmessage( "Error: No value was given." ) + return False # Usernames are limited to 16 characters in length if len( username ) > 16 or len( username ) == 0: *************** *** 297,363 **** return False # Find the account ! else: ! if account: ! if account.rank >= characcount.rank and account.name != characcount.name: ! socket.sysmessage( "Error: Your account rank does not permit this!" ) ! return False ! else: ! # ACL ! if key == 'acl': ! if value in wolfpack.accounts.acls(): ! oldvalue = account.acl ! socket.sysmessage( "Previous: %s.acl = %s" % ( account.name, oldvalue ) ) ! account.acl = value ! socket.sysmessage( "Changed: %s.acl = %s" % ( account.name, account.acl ) ) ! char.log( LOG_MESSAGE, "Modified %s.acl ( %s :: %s ).\n" % ( account.name, oldvalue, value ) ) ! return True ! else: ! socket.sysmessage( "Error: %s is not a valid account.acl!" % value ) return False ! # Flags ! elif key == 'flags': ! oldvalue = account.flags ! socket.sysmessage( "Previous: %s.flags = %s" % ( account.name, account.flags ) ) ! account.flags = hex2dec(value) ! socket.sysmessage( "Changed: %s.acl = %s" % ( account.name, account.flags ) ) ! char.log( LOG_MESSAGE, "Modified %s.flags ( %s :: %s ).\n" % ( account.name, oldvalue, value ) ) return True - # MultiGems - elif key == 'multigems': - if value.lower() == "true" or value.lower() == "false" or value == 1 or value == 0: - oldvalue = account.multigems - socket.sysmessage( "Previous: %s.acl = %s" % ( account.name, account.multigems ) ) - account.multigems = value - socket.sysmessage( "Changed: %s.acl = %s" % ( account.name, account.multigems ) ) - char.log( LOG_MESSAGE, "Modified %s.multigems ( %s :: %s ).\n" % ( account.name, oldvalue, value ) ) - return True - else: - socket.sysmessage( "Error: The account.multigems property must be boolean!" ) - return False - # Password - elif key == 'password': - if len( key ) > 16 or len( key ) == 0: - if len( key ) > 16: - socket.sysmessage( "Error: Password exceeds the 16 character limit!" ) - if len( key ) == 0: - socket.sysmessage( "Error: Password is NULL!" ) - return False - else: - oldvalue = account.password - account.password = key - socket.sysmessage( "Changed: %s.password" % ( account.name, account.password ) ) - char.log( LOG_MESSAGE, "Modified %s.password.\n" % ( char.serial, account.name ) ) - return True - # READ ONLY VALUES - elif key == 'name' or key == 'lastlogin' or key == 'inuse' or key == 'characters' or key == 'rank': - char.log( LOG_MESSAGE, "Attempted modification of read-only value %s.%s.\n" % ( char.serial, account.name, key ) ) - socket.sysmessage( "Error: The account.%s property is read only!" % key ) - return False - # Unknown else: ! socket.sysmessage( "Error: Unknown account property given!" ) return False ! # Failure to find the account ! else: ! socket.sysmessage( "Error: Account %s could not be located!" % username ) ! return True --- 313,389 ---- return False # Find the account ! elif account: ! if account.rank >= characcount.rank and account.name != characcount.name: ! socket.sysmessage( "Error: Your account rank does not permit this!" ) ! return False ! else: ! # ACL ! if key == 'acl': ! acl_list = None ! acl_list = wolfpack.accounts.acls() ! if not acl_list or len( acl_list ) == 0: ! socket.sysmessage( "Error: No ACLs are defined!" ) ! return False ! if not value in acl_list: ! socket.sysmessage( "Error: %s is not a valid account.acl!" % value ) ! return False ! else: ! oldvalue = None ! oldvalue = str( account.acl ) ! if not oldvalue: ! socket.sysmessage( "Warning: This account previously had no ACL!" ) ! socket.sysmessage( "Previous: %s.acl = %s" % ( account.name, oldvalue ) ) ! account.acl = str( value ) ! if str( account.acl ) != str( value ): ! socket.sysmessage( "Error: Failure to set new account ACL!" ) return False ! socket.sysmessage( "Changed: %s.acl = %s" % ( account.name, account.acl ) ) ! char.log( LOG_MESSAGE, "Modified %s.acl ( %s :: %s ).\n" % ( account.name, oldvalue, value ) ) ! return True ! # Flags ! elif key == 'flags': ! oldvalue = account.flags ! socket.sysmessage( "Previous: %s.flags = %s" % ( account.name, account.flags ) ) ! account.flags = hex2dec(value) ! socket.sysmessage( "Changed: %s.acl = %s" % ( account.name, account.flags ) ) ! char.log( LOG_MESSAGE, "Modified %s.flags ( %s :: %s ).\n" % ( account.name, oldvalue, value ) ) ! return True ! # MultiGems ! elif key == 'multigems': ! if value.lower() == "true" or value.lower() == "false" or value == 1 or value == 0: ! oldvalue = account.multigems ! socket.sysmessage( "Previous: %s.acl = %s" % ( account.name, account.multigems ) ) ! account.multigems = value ! socket.sysmessage( "Changed: %s.acl = %s" % ( account.name, account.multigems ) ) ! char.log( LOG_MESSAGE, "Modified %s.multigems ( %s :: %s ).\n" % ( account.name, oldvalue, value ) ) return True else: ! socket.sysmessage( "Error: The account.multigems property must be boolean!" ) return False ! # Password ! elif key == 'password': ! if len( key ) > 16 or len( key ) == 0: ! if len( key ) > 16: ! socket.sysmessage( "Error: Password exceeds the 16 character limit!" ) ! if len( key ) == 0: ! socket.sysmessage( "Error: Password is NULL!" ) ! return False ! else: ! oldvalue = account.password ! account.password = key ! socket.sysmessage( "Changed: %s.password" % ( account.name, account.password ) ) ! char.log( LOG_MESSAGE, "Modified %s.password.\n" % ( char.serial, account.name ) ) ! return True ! # READ ONLY VALUES ! elif key == 'name' or key == 'lastlogin' or key == 'inuse' or key == 'characters' or key == 'rank': ! char.log( LOG_MESSAGE, "Attempted modification of read-only value %s.%s.\n" % ( char.serial, account.name, key ) ) ! socket.sysmessage( "Error: The account.%s property is read only!" % key ) ! return False ! # Unknown ! else: ! socket.sysmessage( "Error: Unknown account property given!" ) ! return False ! # Failure to find the account ! else: ! socket.sysmessage( "Error: Account %s could not be located!" % username ) ! return True |