19926N/A #define GSM_AUTOSTART_APP_DBUS_ARGS_KEY "X-GNOME-DBus-Start-Arguments"
19926N/A #define GSM_AUTOSTART_APP_DISCARD_KEY "X-GNOME-Autostart-discard-exec"
19926N/A+#define SYSTEM_ADMINISTRATOR_PROF "System Administrator"
19926N/A+#define ALLOWED_APPLICATIONS_KEY DESKTOP_GNOME_LOCKDOWN_DIR "/allowed_applications"
19926N/A+#define RESTRICT_APPLICATION_LAUNCHING_KEY DESKTOP_GNOME_LOCKDOWN_DIR "/restrict_application_launching"
19926N/A #endif /* __GSM_AUTOSTART_APP_H__ */
20260N/A+ static gboolean ret_val = FALSE;
20260N/A+ static gboolean cached_root = FALSE;
20260N/A+ if (cached_root == FALSE && (userattr = getusernam(username)) != NULL)
19926N/A+ rolelist = kva_match(userattr->attr, USERATTR_ROLES_KW);
19926N/A+ rolename = strtok(rolelist, ",");
19926N/A+ if (strcmp (rolename, ROOT_ROLE) == 0) {
19926N/A+has_admin_profile (char *username)
20260N/A+ static gboolean ret_val = FALSE;
20260N/A+ static gboolean cached_admin = FALSE;
20260N/A+ if (cached_admin == FALSE && (execattr = getexecuser (username, NULL, NULL, GET_ALL)) != NULL)
20260N/A+ if (strcmp (execattr->name, SYSTEM_ADMINISTRATOR_PROF) == 0)
19926N/A+ if ((pw = getpwuid(uid)) == NULL)
19926N/A+ if (has_admin_profile (pw->pw_name))
19926N/A+ if (has_root_role (pw->pw_name))
19926N/A+ client = gconf_client_get_default ();
19926N/A+ g_assert (GCONF_IS_CLIENT (client));
19926N/A+ restrict_enabled = gconf_client_get_bool (client,
19926N/A+ RESTRICT_APPLICATION_LAUNCHING_KEY, NULL);
19926N/A+lockdown_get_stripped_exec (const gchar *full_exec)
19926N/A+ gchar *str1, *str2, *retval, *p;
19926N/A+ if (g_path_is_absolute (str2))
19926N/A+ retval = g_strdup (g_find_program_in_path ((const gchar *)str2));
19926N/A+lockdown_is_allowed_application (const gchar *app)
20223N/A+ GSList *allowed_applications, *head;
19926N/A+ client = gconf_client_get_default ();
19926N/A+ g_assert (GCONF_IS_CLIENT (client));
20223N/A+ head = allowed_applications = gconf_client_get_list (client,
19926N/A+ for (allowed_applications; allowed_applications;
19926N/A+ allowed_applications = allowed_applications->next)
19926N/A+ if (!strcmp (allowed_applications->data, app)) {
20223N/A+ for (allowed_applications = head; allowed_applications;
19926N/A+ allowed_applications = allowed_applications->next) {
19926N/A+ g_free (allowed_applications->data);
19926N/A+ g_slist_free (allowed_applications);
19926N/A+lockdown_is_forbidden_launcher (GsmApp *app)
19926N/A+ if (!is_restrict_enabled() || is_user_authorized() ) {
19926N/A priv = GSM_AUTOSTART_APP (app)->priv;
19926N/A+ if (egg_desktop_file_has_key (priv->desktop_file,
19926N/A+ full_exec = egg_desktop_file_get_string (
19926N/A+ stripped_exec = lockdown_get_stripped_exec (full_exec);
20223N/A+ // If exec is not found in path simply return False.
19926N/A+ retval = !lockdown_is_allowed_application (stripped_exec);
19926N/A+ retval = !lockdown_is_allowed_application (full_exec);
19926N/A+ priv = GSM_AUTOSTART_APP (app)->priv;
19926N/A /* GSM_AUTOSTART_APP_ENABLED_KEY key, used by old gnome-session */
19926N/A if (egg_desktop_file_has_key (priv->desktop_file,
19926N/A GSM_AUTOSTART_APP_ENABLED_KEY, NULL) &&
19926N/A if (is_disabled_for_sunray_client (app))
19926N/A+ /* Add additional check for Lockdown mode */
19926N/A+ if (lockdown_is_forbidden_launcher (app))
19926N/A /* Do not check AutostartCondition - this method is only to determine
19926N/A if the app is unconditionally disabled */