From: Xordan <mg...@us...> - 2007-07-24 19:35:35
|
Update of /cvsroot/planeshift/planeshift/src/client/gui In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26940 Modified Files: pawscharpick.cpp pawscharpick.h pawsloginwindow.cpp Log Message: - Patch from Kemedes; Now prompted for a password when attempting to delete a character. Index: pawscharpick.cpp =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/client/gui/pawscharpick.cpp,v retrieving revision 1.64 retrieving revision 1.65 diff -C2 -d -r1.64 -r1.65 *** pawscharpick.cpp 15 Apr 2007 04:20:30 -0000 1.64 --- pawscharpick.cpp 24 Jul 2007 19:35:27 -0000 1.65 *************** *** 19,22 **** --- 19,23 ---- #include <psconfig.h> #include <imesh/spritecal3d.h> + #include <csutil/csmd5.h> #include "util/log.h" *************** *** 167,170 **** --- 168,198 ---- } + void pawsCharacterPickerWindow::OnStringEntered(const char *name, int param,const char *value) + { + if (!value) + return; + + csString passwordhash = csMD5::Encode(value).HexString(); + + if (passHash != passwordhash) + { + PawsManager::GetSingleton().SetModalWidget(NULL); + PawsManager::GetSingleton().CreateWarningBox("Wrong password entered!"); + } + else + { + csString name; + name.Format("SelectCharacter%i", selectedCharacter); + + // Get Full name. + psString charFullName( ((pawsButton*)FindWidget(name))->GetText() ); + psString charFirstName; + charFullName.GetWord( 0, charFirstName ); + + psCharDeleteMessage out( charFirstName, 0 ); + msgHandler->SendMessage( out.msg ); + } + } + bool pawsCharacterPickerWindow::OnButtonPressed( int mouseButton, int keyModifer, pawsWidget* widget ) { *************** *** 192,198 **** return false; // Selection is valid. ! confirm.Format( "Are you sure you want to delete %s?", ! charName.GetDataSafe() ); ! PawsManager::GetSingleton().CreateYesNoBox( confirm, this ); return true; --- 220,225 ---- return false; // Selection is valid. ! pawsStringPromptWindow::Create("Please enter your account password to confirm:", csString(""), ! false, 220, 20, this, "DeletionConfirm", 0, true); return true; Index: pawscharpick.h =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/client/gui/pawscharpick.h,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** pawscharpick.h 22 Feb 2006 22:19:42 -0000 1.16 --- pawscharpick.h 24 Jul 2007 19:35:27 -0000 1.17 *************** *** 2,5 **** --- 2,6 ---- #define PAWS_CHAR_PICKER_HEADER + #include "paws/pawsstringpromptwindow.h" #include "paws/pawswidget.h" #include "net/message.h" *************** *** 26,30 **** * type messages. */ ! class pawsCharacterPickerWindow: public pawsWidget, public psClientNetSubscriber { public: --- 27,31 ---- * type messages. */ ! class pawsCharacterPickerWindow: public pawsWidget, public psClientNetSubscriber, public iOnStringEnteredAction { public: *************** *** 44,47 **** --- 45,50 ---- void Draw(); + + void StoreHashedPassword(csString passwordHash) {passHash = passwordHash;} private: *************** *** 54,57 **** --- 57,62 ---- /// Tracks if the character creations screens have been loaded or not. bool characterCreationScreens; + + virtual void OnStringEntered(const char *name, int param,const char *value); csRef<MsgHandler> msgHandler; *************** *** 64,69 **** int lastResend; ! pawsObjectView* view; Model models[MAX_CHARS]; }; --- 69,76 ---- int lastResend; ! pawsObjectView* view; Model models[MAX_CHARS]; + + csString passHash; }; Index: pawsloginwindow.cpp =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/client/gui/pawsloginwindow.cpp,v retrieving revision 1.62 retrieving revision 1.63 diff -C2 -d -r1.62 -r1.63 *** pawsloginwindow.cpp 14 Jul 2007 02:20:44 -0000 1.62 --- pawsloginwindow.cpp 24 Jul 2007 19:35:27 -0000 1.63 *************** *** 22,25 **** --- 22,26 ---- #include <csutil/sysfunc.h> #include <csutil/xmltiny.h> + #include <csutil/csmd5.h> #include "iclient/netmanager.h" *************** *** 30,37 **** #include "paws/pawsokbox.h" #include "paws/pawslistbox.h" - #include "csutil/csmd5.h" #include "util/pscssetup.h" #include "net/serverpinger.h" #include "psmainwidget.h" #include "globals.h" --- 31,38 ---- #include "paws/pawsokbox.h" #include "paws/pawslistbox.h" #include "util/pscssetup.h" #include "net/serverpinger.h" #include "psmainwidget.h" + #include "pawscharpick.h" #include "globals.h" *************** *** 334,341 **** --- 335,346 ---- { csString passwordhash = csMD5::Encode(passwd->GetText()).HexString(); + static_cast<pawsCharacterPickerWindow*> + (PawsManager::GetSingleton().FindWidget("CharPickerWindow"))->StoreHashedPassword(passwordhash); psengine->GetNetManager()->Authenticate( login->GetText(), passwordhash.GetData() ); } else { + static_cast<pawsCharacterPickerWindow*> + (PawsManager::GetSingleton().FindWidget("CharPickerWindow"))->StoreHashedPassword(storedPasswd); psengine->GetNetManager()->Authenticate( login->GetText(), storedPasswd ); } |