#include <cstring>
#include <unordered_set>
+#include <algorithm>
#include <dpl/log/log.h>
#include <dpl/serialization.h>
std::vector<std::string> privileges;
m_privilegeDb.GetPkgPrivileges(pkgId, uid, privileges);
+ /*there is also a need of checking, if privilege is granted to all users*/
+ size_t tmp = privileges.size();
+ m_privilegeDb.GetPkgPrivileges(pkgId, getGlobalUserId(), privileges);
+ /*privileges needs to be sorted and with no duplications - for cynara sake*/
+ std::inplace_merge(privileges.begin(), privileges.begin() + tmp, privileges.end());
+ privileges.erase( unique( privileges.begin(), privileges.end() ), privileges.end() );
+
for (const auto &privilege : privileges) {
std::vector<std::string> gidsTmp;
m_privilegeDb.GetPrivilegeGroups(privilege, gidsTmp);