diff options
author | Radoslaw Bartosiak <r.bartosiak@samsung.com> | 2016-11-22 10:47:00 +0100 |
---|---|---|
committer | Krzysztof Jackiewicz <k.jackiewicz@samsung.com> | 2016-11-30 01:24:12 -0800 |
commit | 84a5bc48c8a3fcb98714099dd962685bffaf4d80 (patch) | |
tree | e9c19dd370fad962911ebfc4730642ee638bbfec | |
parent | 7e3372d8a1b5827b4419d382d6bdd634fda9b8dc (diff) | |
download | security-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.h | 4 | ||||
-rw-r--r-- | src/common/privilege_db.cpp | 2 |
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); |