X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2FXmlHandler%2FPrivilegeHandler.cpp;h=b074d56262570122a32716ff87b2c8d699de0c58;hb=3b2ce51de59c124007b758274cc907360f54a24c;hp=2f4d5a5e49f53631350f64fea661dc2e9f9911b6;hpb=bae1e6b2fd7d3f5b066640dd7a99d1bce1fb5abd;p=platform%2Fframework%2Fnative%2Finstaller.git diff --git a/src/XmlHandler/PrivilegeHandler.cpp b/src/XmlHandler/PrivilegeHandler.cpp index 2f4d5a5..b074d56 100755 --- a/src/XmlHandler/PrivilegeHandler.cpp +++ b/src/XmlHandler/PrivilegeHandler.cpp @@ -29,7 +29,8 @@ #include #include #include -#include +#include +#include #include "InstallerDefs.h" #include "PrivilegeHandler.h" @@ -49,23 +50,33 @@ result PrivilegeHandler::PickExternalPrivilege(const IList& fullPrivilegeList, IList& normalPrivilegeList, IList& externalPrivilegeList) { result r = E_SUCCESS; - File file; String externalPrivilege; ArrayList privilegeList; + Database privilegeDb; + DbEnumerator* pDbEnum; - r = file.Construct(EXTERNAL_PRIVILEGE_FILE_NAME, "r"); + r = privilegeDb.Construct(EXTERNAL_PRIVILEGE_DB_NAME, "r"); TryReturnResultTag(OSP_INSTALLER, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r)); - privilegeList.Construct(); - while (file.Read(externalPrivilege) == E_SUCCESS) + pDbEnum = privilegeDb.QueryN(L"SELECT PRIVILEGE_ID FROM PrivilegeInfo"); + TryReturnResultTag(OSP_INSTALLER, pDbEnum != null, E_DATABASE, E_DATABASE, "[E_DATABASE] Privilege database error."); + + AppLog("------------------------------------------"); + AppLog("External Privilege"); + AppLog("------------------------------------------"); + + while (pDbEnum->MoveNext() == E_SUCCESS) { - externalPrivilege.Remove(externalPrivilege.GetLength()-1, 1); + r = pDbEnum->GetStringAt(0, externalPrivilege); + TryReturnResultTag(OSP_INSTALLER, r == E_SUCCESS, E_DATABASE, E_DATABASE, "[E_DATABASE] Privilege database error."); + + AppLog("%ls", externalPrivilege.GetPointer()); privilegeList.Add(new String(externalPrivilege)); } + delete pDbEnum; IEnumerator* pEnum = fullPrivilegeList.GetEnumeratorN(); - while(pEnum->MoveNext() == E_SUCCESS) { String* tempString = static_cast(pEnum->GetCurrent()); @@ -104,10 +115,17 @@ PrivilegeHandler::GenerateCipherPrivilege(const AppId& appId, const IList& privi } r = PickExternalPrivilege(privilegeList, normalPrivilegeList, stringPrivilegeList); - TryReturnResultTag(OSP_INSTALLER, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r)); - - pBitwisePrivilege = PackPrivilegeN(normalPrivilegeList); - TryReturnResultTag(OSP_INSTALLER, pBitwisePrivilege != null, GetLastResult(), GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult())); + if (r == E_SUCCESS) + { + pBitwisePrivilege = PackPrivilegeN(normalPrivilegeList); + TryReturnResultTag(OSP_INSTALLER, pBitwisePrivilege != null, GetLastResult(), GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult())); + } + else + { + AppLog("Working with normal PrivilegeDb."); + pBitwisePrivilege = PackPrivilegeN(privilegeList); + TryReturnResultTag(OSP_INSTALLER, pBitwisePrivilege != null, GetLastResult(), GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult())); + } r = GetEncryptedBitwise(pBitwisePrivilege, encryptedPrivileges); TryCatchTag(OSP_INSTALLER, r == E_SUCCESS, r = E_SYSTEM, "[E_SYSTEM] An unexpected system error occurred."); @@ -147,10 +165,17 @@ PrivilegeHandler::GenerateCipherPrivilege(const AppId& appId, const IList& privi } r = PickExternalPrivilege(privilegeList, normalPrivilegeList, stringPrivilegeList); - TryReturnResultTag(OSP_INSTALLER, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r)); - - r = PackPrivilegeN(normalPrivilegeList, visibilityLevel, &pBitwisePrivilege); - TryReturnResultTag(OSP_INSTALLER, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r)); + if (r == E_SUCCESS) + { + r = PackPrivilegeN(normalPrivilegeList, visibilityLevel, &pBitwisePrivilege); + TryReturnResultTag(OSP_INSTALLER, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r)); + } + else + { + AppLog("Working with normal PrivilegeDb."); + r = PackPrivilegeN(privilegeList, visibilityLevel, &pBitwisePrivilege); + TryReturnResultTag(OSP_INSTALLER, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r)); + } r = GetEncryptedBitwise(pBitwisePrivilege, encryptedPrivileges); TryCatchTag(OSP_INSTALLER, r == E_SUCCESS, r = E_SYSTEM, "[E_SYSTEM] An unexpected system error occurred.");