SET(description "Input Method Manager APIs")
SET(service "ui")
SET(submodule "inputmethod-manager")
-SET(dependents "capi-base-common dlog isf cynara-client cynara-session")
+SET(dependents "capi-base-common dlog isf cynara-client cynara-session cynara-creds-self")
SET(LIBDIR ${LIB_INSTALL_DIR})
SET(Services
BuildRequires: pkgconfig(isf)
BuildRequires: pkgconfig(cynara-client)
BuildRequires: pkgconfig(cynara-session)
+BuildRequires: pkgconfig(cynara-creds-self)
BuildRequires: pkgconfig(gmock)
Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig
#include <cynara-client.h>
#include <cynara-error.h>
-#include <cynara-creds-socket.h>
#include <cynara-session.h>
+#include <cynara-creds-self.h>
#ifdef LOG_TAG
#undef LOG_TAG
bool
check_privilege(const char *uid, const char *privilege)
{
- FILE *fp = NULL;
- char label_path[1024] = "/proc/self/attr/current";
- char smack_label[1024] = {'\0', };
+ char *client_identification = NULL;
+ char *session = NULL;
+ int ret;
if (!p_cynara) {
return false;
}
- fp = fopen(label_path, "r");
- if (fp != NULL) {
- if (fread(smack_label, 1, sizeof(smack_label) - 1, fp) <= 0) {
- LOGW("[check_privilege] fail to fread");
- }
- fclose(fp);
+ if (cynara_creds_self_get_client(CLIENT_METHOD_DEFAULT, &client_identification) != CYNARA_API_SUCCESS) {
+ LOGW("Failed to get client.");
+ return false;
}
- pid_t pid = getpid();
- char *session = cynara_session_from_pid(pid);
- int ret = cynara_check(p_cynara, smack_label, session, uid, privilege);
- LOGD("[check_privilege]_check_privilege returned %d.", ret);
- if (session)
- free(session);
+ session = cynara_session_from_pid(getpid());
+ ret = cynara_check(p_cynara, client_identification, session, uid, privilege);
+
+ free(session);
+ session = NULL;
+ free(client_identification);
+ client_identification= NULL;
- if (ret != CYNARA_API_ACCESS_ALLOWED)
+ if (ret != CYNARA_API_ACCESS_ALLOWED) {
+ LOGW("Access denied. The result of cynara_check() : %d.", ret);
return false;
+ }
return true;
}
--wrap=isf_control_is_ime_enabled,\
--wrap=isf_control_get_all_ime_info,\
--wrap=isf_control_get_active_ime,\
---wrap=isf_control_prelaunch_ise")
+--wrap=isf_control_prelaunch_ise,\
+--wrap=cynara_creds_self_get_client")
INSTALL(TARGETS ${UNITTEST_INPUTMETHOD_MANAGER} DESTINATION /usr/bin)