diff -r f479c7dc25d6 -r 25a3fbb5e4d3 securitydialogs/SecUi/Src/SecUiSecuritySettings.cpp --- a/securitydialogs/SecUi/Src/SecUiSecuritySettings.cpp Thu Sep 02 21:22:45 2010 +0300 +++ b/securitydialogs/SecUi/Src/SecUiSecuritySettings.cpp Fri Sep 17 08:35:02 2010 +0300 @@ -40,7 +40,7 @@ #include #include #include - +#include #include "SecQueryUi.h" #include @@ -399,6 +399,22 @@ RMobilePhone::TMobilePassword unblockCode; // Required here only as a dummy parameter + /* TODO not sure if needs to check against the typed, or the hashed */ + /* + RArray aFailedPolicies; + TDevicelockPolicies failedPolicy; + TInt retLockcode = KErrNone; + RMobilePhone::TMobilePassword aISACode; + TInt scpFlags = 0; + RDEBUG("scpClient.VerifyCurrentLockcode", 0); + // this validate on ISA . No need to do iPhone.VerifySecurityCode + retLockcode = scpClient.VerifyCurrentLockcode(aRemoteLockCode, aISACode, aFailedPolicies, scpFlags); + RDEBUG("retLockcode", retLockcode); + + RDEBUG("aISACode", 0); + RDEBUGSTR(aISACode); + */ + securityCode = aRemoteLockCode; RDEBUG( "EMobilePhoneVerifySecurityCode", EMobilePhoneVerifySecurityCode ); iWait->SetRequestType(EMobilePhoneVerifySecurityCode); @@ -1220,6 +1236,10 @@ RDEBUG("aResourceID", aResourceID); CHbDeviceMessageBoxSymbian* messageBox = CHbDeviceMessageBoxSymbian::NewL(CHbDeviceMessageBoxSymbian::EWarning); + const TInt KCriticalLevel = 2; + RDEBUG("KCriticalLevel", KCriticalLevel); + HbDeviceDialogsExtensionSymbian::SetShowLevel(messageBox, KCriticalLevel); + RDEBUG("done KCriticalLevel", KCriticalLevel); CleanupStack::PushL(messageBox); TInt satisfactoryIcon = 0; // might change later, in some scenarios _LIT(KText, "ShowResultNoteL: "); @@ -1430,6 +1450,10 @@ titleTr.Append(_L("EDevicelockTotalPolicies")); title.Append(_L("EDevicelockTotalPolicies")); break; + case KErrTDevicelockPolicies+EDevicelockTotalPolicies+1: + titleTr.Append(_L("SCP server doesn't support this UID")); + title.Append(_L("SCP server doesn't support this UID")); + break; default: // " " titleTr.Append(_L("Specific Error")); @@ -2284,10 +2308,29 @@ } // check current code before proceeding + RSCPClient scpCurrClient; + TInt tCurrRet = scpCurrClient.Connect(); + RDEBUG("tCurrRet", tCurrRet); + CleanupClosePushL(scpCurrClient); + RArray aCurrFailedPolicies; + TInt retCurrLockcode = KErrNone; + RMobilePhone::TMobilePassword aCurrISACode; + TInt scpCurrFlags = 0; + RDEBUG("scpClient.VerifyCurrentLockcode", 0); + // this validate on ISA . No need to do iPhone.VerifySecurityCode + retCurrLockcode = scpCurrClient.VerifyCurrentLockcode(oldPassword, aCurrISACode, aCurrFailedPolicies, scpCurrFlags); + RDEBUG("retCurrLockcode", retCurrLockcode); + + RDEBUG("aCurrISACode", 0); + RDEBUGSTR(aCurrISACode); + scpCurrClient.Close(); + RDEBUG("PopAndDestroy", 0); + CleanupStack::PopAndDestroy(); //scpCurrClient + RDEBUG("EMobilePhoneVerifySecurityCode", EMobilePhoneVerifySecurityCode); iWait->SetRequestType(EMobilePhoneVerifySecurityCode); // 0x59F1 RDEBUG("VerifySecurityCode", 0); - iPhone.VerifySecurityCode(iWait->iStatus, secCodeType, oldPassword, required_fourth); + iPhone.VerifySecurityCode(iWait->iStatus, secCodeType, aCurrISACode /* not oldPassword !!! */, required_fourth); RDEBUG("WaitForRequestL", 0); res = iWait->WaitForRequestL(); RDEBUG("WaitForRequestL res", res); @@ -2349,6 +2392,7 @@ if(retLockcode == KErrNone ) { RDEBUG( "scpClient.VerifyNewLockcodeAgainstPolicies", 0 ); + RDEBUGSTR( newPassword ); retLockcode = scpClient.VerifyNewLockcodeAgainstPolicies( newPassword, aFailedPolicies ); RDEBUG( "retLockcode", retLockcode ); RDEBUG( "aFailedPolicies.Count()", aFailedPolicies.Count() ); @@ -2423,6 +2467,10 @@ RArray aFailedPolicies; TDevicelockPolicies failedPolicy; TInt retLockcode = KErrNone; + RDEBUG("newScpCode", 0); + RDEBUGSTR( newScpCode ); + RDEBUG("oldScpCode", 0); + RDEBUGSTR( oldScpCode ); retLockcode = scpClient.StoreLockcode(newScpCode, oldScpCode, aFailedPolicies); RDEBUG( "retLockcode", retLockcode ); RDEBUG( "KErrAccessDenied", KErrAccessDenied ); @@ -2438,6 +2486,8 @@ if(retLockcode!=KErrNone) { RDEBUG("Undo password change because retLockcode", retLockcode); + if(retLockcode==KErrAccessDenied) // this happens if CSCPSession::HandleAuthenticationMessageL doesn't include the UID + retLockcode = KErrTDevicelockPolicies+EDevicelockTotalPolicies+1; ShowResultNoteL(retLockcode, CAknNoteDialog::EConfirmationTone); // go back to previous password.