Modify the CheckPrivilege method to support C application (RPM type)
authorhb.min <hb.min@samsung.com>
Wed, 22 May 2013 01:41:35 +0000 (10:41 +0900)
committerhb.min <hb.min@samsung.com>
Wed, 22 May 2013 01:41:35 +0000 (10:41 +0900)
Change-Id: Iddc127eb4aec4e77ac8ff264aba6c14a73af8cc1
Signed-off-by: hb.min <hb.min@samsung.com>
src/security/FSecAccessController.cpp

index 1ffd1fb..7d5b0a7 100644 (file)
@@ -253,13 +253,14 @@ AccessController::CheckPrivilege(const PackageId& packageId, const String& privi
        _PackageInfoImpl infoImpl;
        String appType;
        String webAppType(L"wgt");
+       String cAppType(L"rpm");
 
        r = _AccessController::CheckUserPrivilege(_PRV_PRIVILEGEMANAGER_READ);
        SysTryReturnResult(NID_SEC, r == E_SUCCESS, E_PRIVILEGE_DENIED, "The application does not have the privilege to call this method.");
 
        packageId.SubString(0, MAX_APP_ID_SIZE, subAppId);
 
-       r = infoImpl.Construct(subAppId);
+       r = infoImpl.Construct(packageId);
        SysTryReturnResult(NID_SEC, r == E_SUCCESS, E_SYSTEM, "An unexpected system error occurred.");
 
        appType = infoImpl.GetAppType();
@@ -267,6 +268,13 @@ AccessController::CheckPrivilege(const PackageId& packageId, const String& privi
        {
                return E_SUCCESS;
        }
+       else if (appType.Equals(cAppType, true))
+       {
+               r = _AccessController::CheckPrivacy(packageId, privilege);
+               SysTryReturnResult(NID_SEC, r == E_SUCCESS, E_USER_NOT_CONSENTED, "The user blocks an application from calling the method.");
+
+               return r;
+       }
 
        if (__pPrivilegeManager == null)
        {