Modify package ID checking
authorHyunbin Lee <hyunbin.lee@samsung.com>
Tue, 28 May 2013 12:38:14 +0000 (21:38 +0900)
committerHyunbin Lee <hyunbin.lee@samsung.com>
Tue, 28 May 2013 12:38:34 +0000 (21:38 +0900)
Change-Id: I39810829843daabe7ddf66f19bcda9de97e38aa8
Signed-off-by: Hyunbin Lee <hyunbin.lee@samsung.com>
src/app/FApp_DataControlManager.cpp
src/app/FApp_DataControlManager.h
src/app/FApp_DataControlProviderManagerImpl.cpp
src/app/FApp_DataControlProviderManagerImpl.h

index aef876c..4a0c91b 100644 (file)
 #include <FBaseColIEnumerator.h>
 
 #include <FBase_StringConverter.h>
+#include <FAppPkg_PackageManagerImpl.h>
 #include "FApp_DataControlManager.h"
 
 using namespace std;
 using namespace Tizen::Base;
 using namespace Tizen::Base::Collection;
+using namespace Tizen::App::Package;
 
 namespace Tizen { namespace App
 {
@@ -149,13 +151,13 @@ _DataControlManager::GetUniqueId(void)
 }
 
 void
-_DataControlManager::Cache(String& appId)
+_DataControlManager::Cache(const AppId& appId)
 {
        __pProviderList->Add(new (std::nothrow) String(appId));
 }
 
 bool
-_DataControlManager::IsCached(String& appId)
+_DataControlManager::IsCached(const AppId& appId)
 {
        unique_ptr< IEnumerator > pEnum(__pProviderList->GetEnumeratorN());
        while (pEnum->MoveNext() == E_SUCCESS)
@@ -170,13 +172,13 @@ _DataControlManager::IsCached(String& appId)
 }
 
 result
-_DataControlManager::AllowAccess(String& appId)
+_DataControlManager::AllowAccess(const AppId& appId)
 {
        if (IsCached(appId) == false)
        {
-               unique_ptr< char[] > pPkgId(_StringConverter::CopyToCharArrayN(appId));
+               const PackageId& pkgId = _PackageManagerImpl::GetPackageIdByAppId(appId);
+               unique_ptr< char[] > pPkgId(_StringConverter::CopyToCharArrayN(pkgId));
                SysTryReturnResult(NID_APP, pPkgId != null, E_SYSTEM, "The method cannot proceed due to a severe system error.");
-               pPkgId.get()[10] = '\0';
 
                int ret = security_server_app_give_access(pPkgId.get(), -1);
                SysTryReturnResult(NID_APP, ret == 0, E_SYSTEM,
index 2d93675..494474b 100644 (file)
@@ -26,6 +26,7 @@
 #include <FBaseColHashMap.h>
 #include <FBaseColLinkedList.h>
 #include <FBaseRtEvent.h>
+#include <FAppTypes.h>
 
 namespace Tizen { namespace App
 {
@@ -74,16 +75,16 @@ public:
 
        int GetUniqueId(void);
 
-       result AllowAccess(Tizen::Base::String& appId);
+       result AllowAccess(const AppId& appId);
 
 private:
        _DataControlManager(void);
 
        virtual ~_DataControlManager(void);
 
-       void Cache(Tizen::Base::String& appId);
+       void Cache(const AppId& appId);
 
-       bool IsCached(Tizen::Base::String& appId);
+       bool IsCached(const AppId& appId);
 
        static void InitSingleton(void);
 
index 0ecc416..73715c3 100644 (file)
@@ -31,6 +31,7 @@
 #include <FBaseColIList.h>
 #include <FBaseSysLog.h>
 #include <FBaseErrors.h>
+#include <FAppTypes.h>
 #include <FAppAppManager.h>
 #include <FAppSqlDataControl.h>
 #include <FAppMapDataControl.h>
@@ -39,6 +40,7 @@
 
 #include <FBase_StringConverter.h>
 #include <FIo_DataControlResultSetImpl.h>
+#include <FAppPkg_PackageManagerImpl.h>
 
 #include "FApp_Aul.h"
 #include "FApp_AppArg.h"
@@ -54,6 +56,7 @@ using namespace std;
 using namespace Tizen::Base;
 using namespace Tizen::Base::Collection;
 using namespace Tizen::Io;
+using namespace Tizen::App::Package;
 
 extern const char* _DATACONTROL_RESULT_DIR;
 extern const char* _DATACONTROL_RESULT_COMPAT_DIR;
@@ -433,13 +436,13 @@ _DataControlProviderManagerImpl::GetInstance(void)
 }
 
 void
-_DataControlProviderManagerImpl::Cache(String& appId)
+_DataControlProviderManagerImpl::Cache(const AppId& appId)
 {
        __pProviderList->Add(new (std::nothrow) String(appId));
 }
 
 bool
-_DataControlProviderManagerImpl::IsCached(String& appId)
+_DataControlProviderManagerImpl::IsCached(const AppId& appId)
 {
        unique_ptr< IEnumerator > pEnum(__pProviderList->GetEnumeratorN());
        while (pEnum->MoveNext() == E_SUCCESS)
@@ -454,13 +457,13 @@ _DataControlProviderManagerImpl::IsCached(String& appId)
 }
 
 result
-_DataControlProviderManagerImpl::AllowAccess(String& appId)
+_DataControlProviderManagerImpl::AllowAccess(const AppId& appId)
 {
        if (IsCached(appId) == false)
        {
-               unique_ptr< char[] > pPkgId(_StringConverter::CopyToCharArrayN(appId));
+               const PackageId& pkgId = _PackageManagerImpl::GetPackageIdByAppId(appId);
+               unique_ptr< char[] > pPkgId(_StringConverter::CopyToCharArrayN(pkgId));
                SysTryReturnResult(NID_APP, pPkgId != null, E_SYSTEM, "The method cannot proceed due to a severe system error.");
-               pPkgId.get()[10] = '\0';
 
                int ret = security_server_app_give_access(pPkgId.get(), -1);
                SysTryReturnResult(NID_APP, ret == 0, E_SYSTEM,
index 90c27e1..216ab2e 100644 (file)
@@ -73,7 +73,7 @@ public:
 
        result SendDataControlError(RequestId reqId, const Tizen::Base::String& errorMsg);
 
-       result AllowAccess(Tizen::Base::String& appId);
+       result AllowAccess(const AppId& appId);
 
        /**
        * Retrieves the data control provider manager instance.
@@ -109,9 +109,9 @@ private:
        */
        _DataControlProviderManagerImpl& operator =(const _DataControlProviderManagerImpl& source);
 
-       void Cache(Tizen::Base::String& appId);
+       void Cache(const AppId& appId);
 
-       bool IsCached(Tizen::Base::String& appId);
+       bool IsCached(const AppId& appId);
 
        static result SendDataControlResult(RequestId reqId, _DataControlRequestType apiType,
                        Tizen::Io::IDbEnumerator* pDbEnum, Tizen::Base::Collection::IList* pResultValueList, long long insertRowId,