bool valid() const;
bool hasPrivilege(const char* privil) const;
- std::string getUser() const;
+ uid_t getUid() const;
+ bool isSystem() const;
+
+ static bool isSystemUid(uid_t uid);
private:
pid_t __pid;
+ uid_t __uid;
char* __clientId; /* Tizen-Default: Smack label */
char* __session;
char* __user; /* Tizen-Default: UID */
class EXPORT_API Database {
public:
+ Database(const std::string& dbName, uid_t uid);
Database(const std::string& dbName, const Credential* credential);
Database(const std::string& dbName);
+
~Database();
bool open();
#include <ScopeMutex.h>
#include <Credential.h>
-#define CACHE_SIZE 100
+#define CACHE_SIZE 100
+#define SYSTEM_UID_LIMIT 5000
using namespace ctx;
Credential::Credential(GDBusConnection* conn, const std::string& busName) :
__pid(0),
+ __uid(0),
__clientId(NULL),
__session(NULL),
__user(NULL),
_E("Peer credentialing failed");
__valid = false;
}
+
+ __uid = static_cast<uid_t>(atoll(__user));
}
Credential::~Credential()
return privilegeChecker.hasPrivilege(__clientId, __session, __user, privil);
}
-std::string Credential::getUser() const
+uid_t Credential::getUid() const
+{
+ return __uid;
+}
+
+bool Credential::isSystem() const
+{
+ return isSystemUid(__uid);
+}
+
+bool Credential::isSystemUid(uid_t uid)
{
- return std::string(__user);
+ return (uid < SYSTEM_UID_LIMIT);
}
#include <Tuple.h>
#include <Database.h>
-#define SYSTEM_UID_LIMIT 5000
+#define ROOT_UID ((uid_t)0)
using namespace ctx;
return path;
}
-Database::Database(const std::string& dbName, const Credential* credential) :
+Database::Database(const std::string& dbName, uid_t uid) :
__dbHandle(NULL),
__transactionOn(false)
{
- uid_t uid = static_cast<uid_t>(atoll(credential->getUser().c_str()));
-
- if (uid < SYSTEM_UID_LIMIT) {
+ if (Credential::isSystemUid(uid)) {
__dbPath = __getSystemPath(dbName);
} else {
__dbPath = __getUserPath(dbName, uid);
_I("Path: %s", __dbPath.c_str());
}
-Database::Database(const std::string& dbName) :
- __dbHandle(NULL),
- __transactionOn(false)
+Database::Database(const std::string& dbName, const Credential* credential) :
+ Database(dbName, credential->getUid())
{
- __dbPath = __getSystemPath(dbName);
+}
- _I("Path: %s", __dbPath.c_str());
+Database::Database(const std::string& dbName) :
+ Database(dbName, ROOT_UID)
+{
}
Database::~Database()