summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRadoslaw Bartosiak <r.bartosiak@samsung.com>2016-11-22 10:47:00 +0100
committerKrzysztof Jackiewicz <k.jackiewicz@samsung.com>2016-11-30 01:24:12 -0800
commit84a5bc48c8a3fcb98714099dd962685bffaf4d80 (patch)
treee9c19dd370fad962911ebfc4730642ee638bbfec
parent7e3372d8a1b5827b4419d382d6bdd634fda9b8dc (diff)
downloadsecurity-manager-84a5bc48c8a3fcb98714099dd962685bffaf4d80.tar.gz
security-manager-84a5bc48c8a3fcb98714099dd962685bffaf4d80.tar.bz2
security-manager-84a5bc48c8a3fcb98714099dd962685bffaf4d80.zip
Fix in GetGroups implementation
SQL query is changed in order to return group only once. Change-Id: Ibaec3ea6033544f35ebe67beec056580bcbea373 Signed-off-by: Radoslaw Bartosiak <r.bartosiak@samsung.com>
-rw-r--r--src/common/include/privilege_db.h4
-rw-r--r--src/common/privilege_db.cpp2
2 files changed, 4 insertions, 2 deletions
diff --git a/src/common/include/privilege_db.h b/src/common/include/privilege_db.h
index 200d8186..827ab21c 100644
--- a/src/common/include/privilege_db.h
+++ b/src/common/include/privilege_db.h
@@ -72,6 +72,7 @@ enum class StmtType {
EGetAllPackages,
EGetAppsInPkg,
EGetGroups,
+ EGetGroupsRelatedPrivileges,
EGetPkgAuthorId,
EAuthorIdExists,
EGetAuthorIdByName,
@@ -124,7 +125,8 @@ private:
{ StmtType::EGetUserPkgs, "SELECT DISTINCT pkg_name FROM user_app_pkg_view WHERE uid=?" },
{ StmtType::EGetAllPackages, "SELECT DISTINCT pkg_name FROM user_app_pkg_view" },
{ StmtType::EGetAppsInPkg, " SELECT app_name FROM user_app_pkg_view WHERE pkg_name = ?" },
- { StmtType::EGetGroups, "SELECT DISTINCT group_name, privilege_name FROM privilege_group" },
+ { StmtType::EGetGroups, "SELECT DISTINCT group_name FROM privilege_group" },
+ { StmtType::EGetGroupsRelatedPrivileges, "SELECT DISTINCT group_name, privilege_name FROM privilege_group" },
{ StmtType::EGetPkgAuthorId, "SELECT author_id FROM pkg WHERE name = ? AND author_id IS NOT NULL"},
{ StmtType::EAuthorIdExists, "SELECT count(*) FROM author where author_id=?"},
{ StmtType::EGetAuthorIdByName, "SELECT author_id FROM author WHERE name=?"},
diff --git a/src/common/privilege_db.cpp b/src/common/privilege_db.cpp
index 80d7933f..c8657e20 100644
--- a/src/common/privilege_db.cpp
+++ b/src/common/privilege_db.cpp
@@ -517,7 +517,7 @@ void PrivilegeDb::GetGroups(std::vector<std::string> &groups)
void PrivilegeDb::GetGroupsRelatedPrivileges(std::vector<std::pair<std::string, std::string>> &privileges)
{
try_catch<void>([&] {
- auto command = getStatement(StmtType::EGetGroups);
+ auto command = getStatement(StmtType::EGetGroupsRelatedPrivileges);
while (command->Step()) {
const auto &groupName = command->GetColumnString(0);