Support privilege database table
authorJihoon Chung <jihoon.chung@samsung.com>
Thu, 13 Dec 2012 05:11:41 +0000 (14:11 +0900)
committerJihoon Chung <jihoon.chung@samsung.com>
Wed, 19 Dec 2012 23:48:45 +0000 (08:48 +0900)
[Issue#] N/A
[Problem] N/A
[Cause] N/A
[Solution] Support privilege database table usage.
This commit store privilege information to database
[SCMRequest] must be imported with wrt-commons

Change-Id: Idfdb7ba55a4395043232ab7f9b860bff1bdccabf

src/configuration_parser/widget_parser.cpp

index 8144fbb..1ead3f3 100644 (file)
@@ -1363,6 +1363,7 @@ class PrivilegeParser : public ElementParser
         if (m_properNamespace) {
             if (attribute.name == L"name") {
                 m_feature.name = attribute.value;
+                m_privilege.name = attribute.value;
             }
         }
         m_feature.required = true;
@@ -1383,12 +1384,28 @@ class PrivilegeParser : public ElementParser
                 }
             }
         }
+
+        LibIri::Wrapper iriPrivilege(
+            DPL::ToUTF8String(m_privilege.name).c_str());
+
+        if (m_privilege.name != L"") {
+            if (iriPrivilege.Validate()) {
+                if (m_data.privilegeList.find(m_privilege) ==
+                    m_data.privilegeList.end()) {
+                    m_data.privilegeList.insert(m_privilege);
+                } else {
+                    LogDebug("Ignoring privilege with name" <<
+                             DPL::ToUTF8String(m_privilege.name));
+                }
+            }
+        }
     }
 
     PrivilegeParser(ConfigParserData& data) :
         ElementParser(),
         m_data(data),
         m_feature(L""),
+        m_privilege(L""),
         m_properNamespace(false)
     {
     }
@@ -1396,6 +1413,7 @@ class PrivilegeParser : public ElementParser
   private:
     ConfigParserData& m_data;
     ConfigParserData::Feature m_feature;
+    ConfigParserData::Privilege m_privilege;
     bool m_properNamespace;
 };