smf/smfcredentialmgr/smfcredmgrserver/src/smfcredmgrserversession.cpp
changeset 26 83d6a149c755
parent 18 013a02bf2bb0
--- a/smf/smfcredentialmgr/smfcredmgrserver/src/smfcredmgrserversession.cpp	Thu Sep 23 17:43:31 2010 +0530
+++ b/smf/smfcredentialmgr/smfcredmgrserver/src/smfcredmgrserversession.cpp	Mon Oct 11 21:59:54 2010 +0530
@@ -321,6 +321,73 @@
 			aMessage.Complete(err);
 			}
 			break;
+
+		case ESmfCheckServiceAuthorization:
+			{
+			//create buffer to read
+			HBufC* authAppId = HBufC::NewLC(aMessage.GetDesLength(0));
+			TPtr authAppIdPtr(authAppId->Des());
+			aMessage.ReadL(0, authAppIdPtr);
+
+			TBool isAuthenticated = EFalse;
+			iDbUser->checkServiceAuthenticationL(*authAppId, isAuthenticated);
+
+			HBufC8* isAuthenticatedBuf8 = HBufC8::NewLC(4);
+			TPtr8 isAuthenticatedBufPtr8(isAuthenticatedBuf8->Des());
+			isAuthenticatedBufPtr8.AppendNum(isAuthenticated);
+
+			TInt err = aMessage.Write(1, isAuthenticatedBufPtr8);
+
+			CleanupStack::PopAndDestroy(isAuthenticatedBuf8);
+			CleanupStack::PopAndDestroy(authAppId);
+			
+			aMessage.Complete(err);
+			}
+			break;
+
+		case EDeleteAuthData:
+			{
+			//create buffer to read the received data
+			RBuf8 dataBuf;
+			CleanupClosePushL(dataBuf);
+			dataBuf.CreateL(aMessage.GetDesLength(0));
+			aMessage.ReadL(0, dataBuf);
+			CSmfFetchAuthTokenSet* deleteAuthTokenParams =
+					new (ELeave) CSmfFetchAuthTokenSet;
+
+			CleanupStack::PushL(deleteAuthTokenParams);
+			deleteAuthTokenParams->InternalizeL(dataBuf);
+						
+			//create buffer to read
+			HBufC* authAppId = HBufC::NewLC(aMessage.GetDesLength(1));
+			TPtr authAppIdPtr(authAppId->Des());
+			aMessage.ReadL(1, authAppIdPtr);
+
+			TBool deleted = EFalse;
+			
+			TBuf<KMaxBufSize> authAppIDBuf;
+			iDbUser->readAuthAppIdInRegTokenTable(deleteAuthTokenParams->iRegistrationToken->Des(),
+					authAppIDBuf);
+			
+			if(0 == authAppIdPtr.Compare(authAppIDBuf))
+				{
+				deleted = deleteAuthAppInfoL(authAppIdPtr);
+				}
+					
+			HBufC8* deletedBuf8 = HBufC8::NewLC(4);
+			TPtr8 deletedBufPtr8(deletedBuf8->Des());
+			deletedBufPtr8.AppendNum(deleted);
+
+			TInt err = aMessage.Write(2, deletedBufPtr8);
+			
+			CleanupStack::PopAndDestroy(deletedBuf8);
+			CleanupStack::PopAndDestroy(authAppId);
+			CleanupStack::PopAndDestroy(deleteAuthTokenParams);
+			CleanupStack::PopAndDestroy(&dataBuf);
+			
+			aMessage.Complete(err);
+			}
+			break;
 			
 		case ESmfHMACSHA1SignMessage:
 		case ESmfRSASignMessage:
@@ -330,6 +397,7 @@
 			iKeyStore->HandleMessageL(aMessage);
 			}
 			break;
+			
 		default:
 			//todo -panic client
 			break;
@@ -406,3 +474,14 @@
 			authAppIDBuf);
 	iDbUser->readAuthTokensL(authAppIDBuf, aParams->iAuthTokenArray);
 	}
+
+bool CSmfCredMgrServerSession::deleteAuthAppInfoL( const TDesC& aAuthAppId )
+	{
+	bool deleted = EFalse;
+	deleted = iDbUser->deleteAuthDataSetL(aAuthAppId);
+	deleted = iDbUser->deletePluginListL(aAuthAppId);
+	deleted = iDbUser->deleteRegTokenValidityL(aAuthAppId);
+	deleted = iDbUser->deleteURLListL(aAuthAppId);
+	
+	return deleted;
+	}