From: Aleksander Zdyb Date: Fri, 20 Jun 2014 09:54:56 +0000 (+0200) Subject: Change PolicyType enum to PredefinedPolicyType for consts X-Git-Tag: accepted/tizen/common/20140722.142604~112 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6eec70c8aadbd5b8312e375848c0d8c5cbb05851;p=platform%2Fcore%2Fsecurity%2Fcynara.git Change PolicyType enum to PredefinedPolicyType for consts PolicyType cannot be an enum, because it needs to hold values other than just those predefined Change-Id: I9038b57a1fc80c6c3eb3b87e74037073e9342ebd --- diff --git a/src/common/types/Policy.h b/src/common/types/Policy.h index 47faad9..3c0d974 100644 --- a/src/common/types/Policy.h +++ b/src/common/types/Policy.h @@ -46,7 +46,7 @@ public: } static PolicyPtr bucketWithKey(const PolicyKey &key, const PolicyBucketId &bucketId) { - auto result = PolicyResult(PolicyType::BUCKET, bucketId); + auto result = PolicyResult(PredefinedPolicyType::BUCKET, bucketId); return std::make_shared(key, result); } diff --git a/src/common/types/PolicyBucket.h b/src/common/types/PolicyBucket.h index 6cdb51c..3b3efa0 100644 --- a/src/common/types/PolicyBucket.h +++ b/src/common/types/PolicyBucket.h @@ -45,10 +45,10 @@ const PolicyBucketId defaultPolicyBucketId(""); class PolicyBucket { public: - PolicyBucket() : m_defaultPolicy(PolicyResult(PolicyType::DENY)) {} + PolicyBucket() : m_defaultPolicy(PolicyResult(PredefinedPolicyType::DENY)) {} PolicyBucket(const PolicyCollection &policies) : m_policyCollection(policies), - m_defaultPolicy(PolicyResult(PolicyType::DENY)) {} + m_defaultPolicy(PolicyResult(PredefinedPolicyType::DENY)) {} PolicyBucket filtered(const PolicyKey &key) const; diff --git a/src/common/types/PolicyType.h b/src/common/types/PolicyType.h index 5336746..82d4740 100644 --- a/src/common/types/PolicyType.h +++ b/src/common/types/PolicyType.h @@ -15,23 +15,28 @@ */ /* * @file PolicyType.h - * @author Lukasz Wojciechowski + * @author Lukasz Wojciechowski * @author Aleksander Zdyb * @version 1.0 * @brief This file defines PolicyType e.g. ALLOW or DENY */ -#ifndef CYNARA_COMMON_TYPES_POLICYTYPE_H -#define CYNARA_COMMON_TYPES_POLICYTYPE_H +#ifndef SRC_COMMON_TYPES_POLICYTYPE_H_ +#define SRC_COMMON_TYPES_POLICYTYPE_H_ + +#include +#include namespace Cynara { -enum class PolicyType : std::uint16_t { - DENY = 0, - BUCKET = 0xFFFE, - ALLOW = 0xFFFF +typedef std::uint16_t PolicyType; + +namespace PredefinedPolicyType { + const PolicyType DENY = 0; + const PolicyType BUCKET = 0xFFFE; + const PolicyType ALLOW = 0xFFFF; }; } // namespace Cynara -#endif /* CYNARA_COMMON_TYPES_POLICYTYPE_H */ +#endif /* SRC_COMMON_TYPES_POLICYTYPE_H_ */ diff --git a/src/service/storage/InMemoryStorageBackend.cpp b/src/service/storage/InMemoryStorageBackend.cpp index 538952a..212c13a 100644 --- a/src/service/storage/InMemoryStorageBackend.cpp +++ b/src/service/storage/InMemoryStorageBackend.cpp @@ -85,7 +85,7 @@ void InMemoryStorageBackend::deleteLinking(const PolicyBucketId &bucketId) { // Check bucket id only if policy is a bucket policy // TODO: Maybe move the test to PolicyResult - if (policyResult.policyType() == PolicyType::BUCKET) { + if (policyResult.policyType() == PredefinedPolicyType::BUCKET) { return policyResult.metadata() == bucketId; } return false; diff --git a/src/service/storage/Storage.cpp b/src/service/storage/Storage.cpp index 5c14299..6dc462d 100644 --- a/src/service/storage/Storage.cpp +++ b/src/service/storage/Storage.cpp @@ -49,20 +49,20 @@ PolicyResult Storage::minimalPolicy(const PolicyBucket &bucket) { auto proposeMinimal = [&minimal, &hasMinimal](const PolicyResult &candidate) { if(hasMinimal == false) { minimal = candidate; - } else if(candidate < minimal) { + } else if (candidate < minimal) { minimal = candidate; } hasMinimal = true; }; - for(const auto &policyRecord : policies) { + for (const auto &policyRecord : policies) { const auto &policyResult = policyRecord->result(); - switch(policyResult.policyType()) { - case PolicyType::DENY: + switch (policyResult.policyType()) { + case PredefinedPolicyType::DENY: return policyResult; // Do not expect lower value than DENY break; - case PolicyType::BUCKET: { + case PredefinedPolicyType::BUCKET: { auto bucketResults = m_backend.searchBucket(policyResult.metadata(), policyRecord->key()); auto minimumOfBucket = minimalPolicy(bucketResults); @@ -70,7 +70,7 @@ PolicyResult Storage::minimalPolicy(const PolicyBucket &bucket) { continue; } break; - case PolicyType::ALLOW: + case PredefinedPolicyType::ALLOW: default: break; } diff --git a/test/storage/inmemorystoragebackend/buckets.cpp b/test/storage/inmemorystoragebackend/buckets.cpp index 9ca7403..bcdca54 100644 --- a/test/storage/inmemorystoragebackend/buckets.cpp +++ b/test/storage/inmemorystoragebackend/buckets.cpp @@ -38,7 +38,7 @@ TEST_F(InMemeoryStorageBackendFixture, addBucket) { EXPECT_CALL(backend, buckets()) .WillOnce(ReturnRef(m_buckets)); - PolicyResult defaultPolicy(PolicyType::ALLOW); + PolicyResult defaultPolicy(PredefinedPolicyType::ALLOW); PolicyBucketId bucketId = "new-bucket"; backend.createBucket(bucketId, defaultPolicy); diff --git a/test/storage/inmemorystoragebackend/inmemorystoragebackend.cpp b/test/storage/inmemorystoragebackend/inmemorystoragebackend.cpp index 92e0e4a..9cfe8cb 100644 --- a/test/storage/inmemorystoragebackend/inmemorystoragebackend.cpp +++ b/test/storage/inmemorystoragebackend/inmemorystoragebackend.cpp @@ -52,7 +52,7 @@ TEST_F(InMemeoryStorageBackendFixture, defaultPolicyIsDeny) { auto filteredBucket = backend.searchDefaultBucket(Helpers::generatePolicyKey()); auto defaultPolicy = filteredBucket.defaultPolicy(); - ASSERT_EQ(PolicyType::DENY, defaultPolicy.policyType()); + ASSERT_EQ(PredefinedPolicyType::DENY, defaultPolicy.policyType()); } TEST_F(InMemeoryStorageBackendFixture, deleteLinking) { @@ -70,16 +70,16 @@ TEST_F(InMemeoryStorageBackendFixture, deleteLinking) { const PolicyBucketId testBucket3 = "test-bucket-3"; // Create 2 buckets - for(const auto &bucketId : { testBucket1, testBucket2, testBucket3 }) { - PolicyResult defaultPolicy(PolicyType::DENY); + for (const auto &bucketId : { testBucket1, testBucket2, testBucket3 }) { + PolicyResult defaultPolicy(PredefinedPolicyType::DENY); backend.createBucket(bucketId, defaultPolicy); } // These policies do not link to buckets, so should stay untouched PolicyCollection policiesToStay = { - Policy::simpleWithKey(Helpers::generatePolicyKey("1"), PolicyType::DENY), - Policy::simpleWithKey(Helpers::generatePolicyKey("1"), PolicyType::DENY), - Policy::simpleWithKey(Helpers::generatePolicyKey("2"), PolicyType::ALLOW), + Policy::simpleWithKey(Helpers::generatePolicyKey("1"), PredefinedPolicyType::DENY), + Policy::simpleWithKey(Helpers::generatePolicyKey("1"), PredefinedPolicyType::DENY), + Policy::simpleWithKey(Helpers::generatePolicyKey("2"), PredefinedPolicyType::ALLOW), }; // Add some policies to 1st bucket, which link to 2nd bucket @@ -122,7 +122,7 @@ TEST_F(InMemeoryStorageBackendFixture, insertPolicy) { PolicyBucketId bucketId = "test-bucket"; createBucket(bucketId); - auto policyToAdd = Policy::simpleWithKey(Helpers::generatePolicyKey(), PolicyType::ALLOW); + auto policyToAdd = Policy::simpleWithKey(Helpers::generatePolicyKey(), PredefinedPolicyType::ALLOW); backend.insertPolicy(bucketId, policyToAdd); ASSERT_THAT(m_buckets.at(bucketId).policyCollection(), UnorderedElementsAre(policyToAdd)); @@ -153,12 +153,12 @@ TEST_F(InMemeoryStorageBackendFixture, deletePolicy) { PolicyBucketId bucketId = "test-bucket"; createBucket(bucketId); - auto policyToDelete = Policy::simpleWithKey(Helpers::generatePolicyKey(), PolicyType::ALLOW); + auto policyToDelete = Policy::simpleWithKey(Helpers::generatePolicyKey(), PredefinedPolicyType::ALLOW); PolicyCollection otherPolicies = { - Policy::simpleWithKey(Helpers::generatePolicyKey("other-policy-1"), PolicyType::ALLOW), - Policy::simpleWithKey(Helpers::generatePolicyKey("other-policy-2"), PolicyType::ALLOW), - Policy::simpleWithKey(Helpers::generatePolicyKey("other-policy-3"), PolicyType::ALLOW), + Policy::simpleWithKey(Helpers::generatePolicyKey("other-policy-1"), PredefinedPolicyType::ALLOW), + Policy::simpleWithKey(Helpers::generatePolicyKey("other-policy-2"), PredefinedPolicyType::ALLOW), + Policy::simpleWithKey(Helpers::generatePolicyKey("other-policy-3"), PredefinedPolicyType::ALLOW), }; addToBucket(bucketId, { diff --git a/test/storage/inmemorystoragebackend/search.cpp b/test/storage/inmemorystoragebackend/search.cpp index 5463bc1..705c075 100644 --- a/test/storage/inmemorystoragebackend/search.cpp +++ b/test/storage/inmemorystoragebackend/search.cpp @@ -46,9 +46,9 @@ TEST_F(InMemeoryStorageBackendFixture, searchDefault) { const auto &defaultBucket = createBucket(defaultPolicyBucketId); addToBucket(defaultPolicyBucketId, { - Policy::simpleWithKey(pk1, PolicyType::ALLOW), - Policy::simpleWithKey(pk2, PolicyType::DENY), - Policy::simpleWithKey(pk1, PolicyType::DENY), + Policy::simpleWithKey(pk1, PredefinedPolicyType::ALLOW), + Policy::simpleWithKey(pk2, PredefinedPolicyType::DENY), + Policy::simpleWithKey(pk1, PredefinedPolicyType::DENY), }); // Just override buckets() accessor diff --git a/test/storage/storage/buckets.cpp b/test/storage/storage/buckets.cpp index 51e7b39..e34c67a 100644 --- a/test/storage/storage/buckets.cpp +++ b/test/storage/storage/buckets.cpp @@ -48,7 +48,7 @@ TEST(storage, addBucket) { Cynara::Storage storage(backend); PolicyBucketId bucketId = "test-bucket"; - PolicyResult defaultPolicy(PolicyType::DENY); + PolicyResult defaultPolicy(PredefinedPolicyType::DENY); EXPECT_CALL(backend, createBucket(bucketId, defaultPolicy)); @@ -59,7 +59,7 @@ TEST(storage, addBucket) { TEST(storage, addDefaultBucket) { FakeStorageBackend backend; Cynara::Storage storage(backend); - PolicyResult defaultPolicy(PolicyType::DENY); + PolicyResult defaultPolicy(PredefinedPolicyType::DENY); ASSERT_THROW( storage.createBucket(defaultPolicyBucketId, defaultPolicy), diff --git a/test/storage/storage/check.cpp b/test/storage/storage/check.cpp index f463db3..426c9f3 100644 --- a/test/storage/storage/check.cpp +++ b/test/storage/storage/check.cpp @@ -55,7 +55,7 @@ TEST(storage, checkEmpty) { // Default bucket empty -- return DENY auto policyAnswer = storage.checkPolicy(pk); - ASSERT_EQ(PolicyType::DENY, policyAnswer.policyType()); + ASSERT_EQ(PredefinedPolicyType::DENY, policyAnswer.policyType()); } TEST(storage, checkSimple) { @@ -71,15 +71,15 @@ TEST(storage, checkSimple) { .WillRepeatedly(ReturnPointee(&bucket)); // Default bucket empty -- return DENY - ASSERT_EQ(PolicyType::DENY, storage.checkPolicy(pk).policyType()); + ASSERT_EQ(PredefinedPolicyType::DENY, storage.checkPolicy(pk).policyType()); // Add ALLOW to default bucket -- return ALLOW - bucket.policyCollection().push_back(Policy::simpleWithKey(pk, PolicyType::ALLOW)); - ASSERT_EQ(PolicyType::ALLOW, storage.checkPolicy(pk).policyType()); + bucket.policyCollection().push_back(Policy::simpleWithKey(pk, PredefinedPolicyType::ALLOW)); + ASSERT_EQ(PredefinedPolicyType::ALLOW, storage.checkPolicy(pk).policyType()); // Add DENY to default bucket -- return DENY - bucket.policyCollection().push_back(Policy::simpleWithKey(pk, PolicyType::DENY)); - ASSERT_EQ(PolicyType::DENY, storage.checkPolicy(pk).policyType()); + bucket.policyCollection().push_back(Policy::simpleWithKey(pk, PredefinedPolicyType::DENY)); + ASSERT_EQ(PredefinedPolicyType::DENY, storage.checkPolicy(pk).policyType()); } TEST(storage, checkBucket) { @@ -92,7 +92,7 @@ TEST(storage, checkBucket) { PolicyKey pk = Helpers::generatePolicyKey(); PolicyBucket defaultBucket(PolicyCollection({ - Policy::simpleWithKey(pk, PolicyType::ALLOW), + Policy::simpleWithKey(pk, PredefinedPolicyType::ALLOW), Policy::bucketWithKey(pk, additionalBucketId) })); @@ -109,13 +109,13 @@ TEST(storage, checkBucket) { // Bucket empty -- should return DENY as default bucket value - ASSERT_EQ(PolicyType::DENY, storage.checkPolicy(pk).policyType()); + ASSERT_EQ(PredefinedPolicyType::DENY, storage.checkPolicy(pk).policyType()); // Add ALLOW to bucket, so return ALLOW - additionalBucket.policyCollection().push_back(Policy::simpleWithKey(pk, PolicyType::ALLOW)); - ASSERT_EQ(PolicyType::ALLOW, storage.checkPolicy(pk).policyType()); + additionalBucket.policyCollection().push_back(Policy::simpleWithKey(pk, PredefinedPolicyType::ALLOW)); + ASSERT_EQ(PredefinedPolicyType::ALLOW, storage.checkPolicy(pk).policyType()); // Add DENY to default bucket -- return DENY, even though ALLOW in other bucket - defaultBucket.policyCollection().push_back(Policy::simpleWithKey(pk, PolicyType::DENY)); - ASSERT_EQ(PolicyType::DENY, storage.checkPolicy(pk).policyType()); + defaultBucket.policyCollection().push_back(Policy::simpleWithKey(pk, PredefinedPolicyType::DENY)); + ASSERT_EQ(PredefinedPolicyType::DENY, storage.checkPolicy(pk).policyType()); } diff --git a/test/storage/storage/policies.cpp b/test/storage/storage/policies.cpp index 777ca83..fc067be 100644 --- a/test/storage/storage/policies.cpp +++ b/test/storage/storage/policies.cpp @@ -89,14 +89,14 @@ TEST(storage, insertPolicies) { PolicyBucketId testBucket2 = "test-bucket-2"; std::vector policiesToInsert = { - std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("1"), PolicyType::ALLOW), testBucket1), - std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("2"), PolicyType::DENY), testBucket1), - std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("3"), PolicyType::DENY), testBucket1), - std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("4"), PolicyType::ALLOW), testBucket2), - std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("5"), PolicyType::ALLOW), testBucket2), + std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("1"), PredefinedPolicyType::ALLOW), testBucket1), + std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("2"), PredefinedPolicyType::DENY), testBucket1), + std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("3"), PredefinedPolicyType::DENY), testBucket1), + std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("4"), PredefinedPolicyType::ALLOW), testBucket2), + std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("5"), PredefinedPolicyType::ALLOW), testBucket2), }; - for(const auto &policy : policiesToInsert) { + for (const auto &policy : policiesToInsert) { PolicyBucketId bucketId; PolicyPtr policyPtr; std::tie(policyPtr, bucketId) = policy; @@ -117,17 +117,17 @@ TEST(storage, updatePolicies) { PolicyBucketId testBucket2 = "test-bucket-2"; std::vector policiesToInsert = { - std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("1"), PolicyType::ALLOW), testBucket1), - std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("2"), PolicyType::DENY), testBucket1), - std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("3"), PolicyType::DENY), testBucket1), - std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("4"), PolicyType::ALLOW), testBucket2), - std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("5"), PolicyType::ALLOW), testBucket2), + std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("1"), PredefinedPolicyType::ALLOW), testBucket1), + std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("2"), PredefinedPolicyType::DENY), testBucket1), + std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("3"), PredefinedPolicyType::DENY), testBucket1), + std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("4"), PredefinedPolicyType::ALLOW), testBucket2), + std::make_tuple(Policy::simpleWithKey(Helpers::generatePolicyKey("5"), PredefinedPolicyType::ALLOW), testBucket2), }; PolicyCollection pc({std::get<0>(policiesToInsert.at(0))}); - for(const auto &policy : policiesToInsert) { + for (const auto &policy : policiesToInsert) { PolicyBucketId bucketId; PolicyPtr policyPtr; std::tie(policyPtr, bucketId) = policy;