_tzsh_srv_iface_cb_launcher_get,
};
+static Eina_Bool
+_e_policy_wl_tzsh_service_check_privilege(struct wl_client *client, int role)
+{
+ const char *privilege;
+ pid_t pid;
+ uid_t uid;
+ Eina_Bool res;
+
+ switch (role)
+ {
+ case TZSH_SRV_ROLE_QUICKPANEL_SYSTEM_DEFAULT:
+ case TZSH_SRV_ROLE_QUICKPANEL_CONTEXT_MENU:
+ case TZSH_SRV_ROLE_QUICKPANEL_APPS_MENU:
+ privilege = E_PRIVILEGE_QUICKPANEL_SERVICE;
+ break;
+ case TZSH_SRV_ROLE_VOLUME:
+ privilege = E_PRIVILEGE_VOLUME_SERVICE;
+ break;
+ case TZSH_SRV_ROLE_LOCKSCREEN:
+ privilege = E_PRIVILEGE_LOCKSCREEN_SERVICE;
+ break;
+ case TZSH_SRV_ROLE_INDICATOR:
+ privilege = E_PRIVILEGE_INDICATOR_SERVICE;
+ break;
+ case TZSH_SRV_ROLE_SCREENSAVER_MNG:
+ case TZSH_SRV_ROLE_SCREENSAVER:
+ privilege = E_PRIVILEGE_SCREENSAVER_SERVICE;
+ break;
+ case TZSH_SRV_ROLE_CBHM:
+ privilege = E_PRIVILEGE_CBHM_SERVICE;
+ break;
+ case TZSH_SRV_ROLE_SOFTKEY:
+ privilege = E_PRIVILEGE_SOFTKEY_SERVICE;
+ break;
+ case TZSH_SRV_ROLE_MAGNIFIER:
+ privilege = E_PRIVILEGE_MAGNIFIER_SERVICE;
+ break;
+ case TZSH_SRV_ROLE_LAUNCHER:
+ privilege = E_PRIVILEGE_LAUNCHER_SERVICE;
+ break;
+ default:
+ return EINA_TRUE;
+ }
+
+ wl_client_get_credentials(client, &pid, &uid, NULL);
+ res = e_security_privilege_check(pid,
+ uid,
+ privilege);
+ return res;
+}
+
static void
_tzsh_cb_srv_destroy(struct wl_resource *res_tzsh_srv)
{
E_Client *ec;
E_Pixmap *cp;
int role;
- pid_t pid;
- uid_t uid;
Eina_Bool res;
role = _e_policy_wl_tzsh_srv_role_get(name);
}
/* check whether client has a privilege */
- if (role == TZSH_SRV_ROLE_MAGNIFIER)
- {
- wl_client_get_credentials(client, &pid, &uid, NULL);
- res = e_security_privilege_check(pid,
- uid,
- E_PRIVILEGE_MAGNIFIER_SERVICE);
- if (!res)
- {
- ERR("Could not get privilege of resource: %m");
- tizen_ws_shell_send_error(res_tzsh,
- TIZEN_WS_SHELL_ERROR_PERMISSION_DENIED);
- return;
- }
- }
- else if (role == TZSH_SRV_ROLE_LAUNCHER)
+ res = _e_policy_wl_tzsh_service_check_privilege(client, role);
+ if (!res)
{
- wl_client_get_credentials(client, &pid, &uid, NULL);
- res = e_security_privilege_check(pid, uid,
- E_PRIVILEGE_LAUNCHER_SERVICE);
- if (!res)
- {
- ERR("Could not get privilege of resource: %m");
- tizen_ws_shell_send_error(res_tzsh,
- TIZEN_WS_SHELL_ERROR_PERMISSION_DENIED);
- return;
- }
+ ERR("Could not get privilege of resource: %m");
+ tizen_ws_shell_send_error(res_tzsh,
+ TIZEN_WS_SHELL_ERROR_PERMISSION_DENIED);
+ return;
}
/* to avoid sending a wayland error after tzsh ERROR_NONE for every cases
EINTERN const char *E_PRIVILEGE_SOFTKEY = "http://tizen.org/privilege/windowsystem.admin";
EINTERN const char *E_PRIVILEGE_MAGNIFIER_SERVICE = "http://tizen.org/privilege/internal/default/platform";
EINTERN const char *E_PRIVILEGE_LAUNCHER_SERVICE = "http://tizen.org/privilege/internal/default/platform";
+EINTERN const char *E_PRIVILEGE_QUICKPANEL_SERVICE = "http://tizen.org/privilege/internal/default/platform";
+EINTERN const char *E_PRIVILEGE_VOLUME_SERVICE = "http://tizen.org/privilege/internal/default/platform";
+EINTERN const char *E_PRIVILEGE_LOCKSCREEN_SERVICE = "http://tizen.org/privilege/internal/default/platform";
+EINTERN const char *E_PRIVILEGE_INDICATOR_SERVICE = "http://tizen.org/privilege/internal/default/platform";
+EINTERN const char *E_PRIVILEGE_SCREENSAVER_SERVICE = "http://tizen.org/privilege/internal/default/platform";
+EINTERN const char *E_PRIVILEGE_CBHM_SERVICE = "http://tizen.org/privilege/internal/default/platform";
+EINTERN const char *E_PRIVILEGE_SOFTKEY_SERVICE = "http://tizen.org/privilege/internal/default/platform";
E_API const char *E_PRIVILEGE_GESTURE_GRAB = "http://tizen.org/privilege/gesturegrab";
E_API const char *E_PRIVILEGE_GESTURE_ACTIVATE = "http://tizen.org/privilege/gestureactivation";
extern EINTERN const char *E_PRIVILEGE_SOFTKEY;
extern EINTERN const char *E_PRIVILEGE_MAGNIFIER_SERVICE;
extern EINTERN const char *E_PRIVILEGE_LAUNCHER_SERVICE;
+extern EINTERN const char *E_PRIVILEGE_QUICKPANEL_SERVICE;
+extern EINTERN const char *E_PRIVILEGE_VOLUME_SERVICE;
+extern EINTERN const char *E_PRIVILEGE_LOCKSCREEN_SERVICE;
+extern EINTERN const char *E_PRIVILEGE_INDICATOR_SERVICE;
+extern EINTERN const char *E_PRIVILEGE_SCREENSAVER_SERVICE;
+extern EINTERN const char *E_PRIVILEGE_CBHM_SERVICE;
+extern EINTERN const char *E_PRIVILEGE_SOFTKEY_SERVICE;
extern E_API const char *E_PRIVILEGE_GESTURE_GRAB;
extern E_API const char *E_PRIVILEGE_GESTURE_ACTIVATE;