static GSList * perm_permlist_to_stringlist (GSList *permlist) { GSList *list = NULL, *iter; for (iter = permlist; iter; iter = g_slist_next (iter)) list = g_slist_append (list, permission_to_string ((Permission *) iter->data)); return list; }
static gboolean show_nm_permissions (NmCli *nmc) { NMClientPermission perm; GError *error = NULL; const char *fields_str; const char *fields_all = NMC_FIELDS_NM_PERMISSIONS_ALL; const char *fields_common = NMC_FIELDS_NM_PERMISSIONS_COMMON; NmcOutputField *tmpl, *arr; size_t tmpl_len; if (!nmc->required_fields || strcasecmp (nmc->required_fields, "common") == 0) fields_str = fields_common; else if (!nmc->required_fields || strcasecmp (nmc->required_fields, "all") == 0) fields_str = fields_all; else fields_str = nmc->required_fields; tmpl = nmc_fields_nm_permissions; tmpl_len = sizeof (nmc_fields_nm_permissions); nmc->print_fields.indices = parse_output_fields (fields_str, tmpl, FALSE, NULL, &error); if (error) { g_string_printf (nmc->return_text, _("Error: 'general permissions': %s"), error->message); g_error_free (error); nmc->return_value = NMC_RESULT_ERROR_USER_INPUT; return FALSE; } nmc->get_client (nmc); /* create NMClient */ if (!nm_client_get_nm_running (nmc->client)) { g_string_printf (nmc->return_text, _("Error: NetworkManager is not running.")); nmc->return_value = NMC_RESULT_ERROR_NM_NOT_RUNNING; return FALSE; } nmc->print_fields.header_name = _("NetworkManager permissions"); arr = nmc_dup_fields_array (tmpl, tmpl_len, NMC_OF_FLAG_MAIN_HEADER_ADD | NMC_OF_FLAG_FIELD_NAMES); g_ptr_array_add (nmc->output_data, arr); for (perm = NM_CLIENT_PERMISSION_NONE + 1; perm <= NM_CLIENT_PERMISSION_LAST; perm++) { NMClientPermissionResult perm_result = nm_client_get_permission_result (nmc->client, perm); arr = nmc_dup_fields_array (tmpl, tmpl_len, 0); set_val_strc (arr, 0, permission_to_string (perm)); set_val_strc (arr, 1, permission_result_to_string (perm_result)); g_ptr_array_add (nmc->output_data, arr); } print_data (nmc); /* Print all data */ return TRUE; }
static void add_permission_info (GtkListStore *store, EphyPermissionInfo *info) { GtkTreeIter iter; gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, COL_HOST, info->host, COL_PERM, permission_to_string (info->permission), -1); }
static void permission_changed_cb (EphyPermissionManager *manager, EphyPermissionInfo *info, EphyPermissionsDialog *dialog) { DialogTab *tab; GtkTreeIter iter; g_return_if_fail (info != NULL); tab = get_tab_for_type (dialog, info->qtype); if (tab == NULL || tab->filled == FALSE) return; if (host_to_iter (tab->model, info->host, &iter)) { gtk_list_store_set (tab->store, &iter, COL_PERM, permission_to_string (info->permission), -1); } else { g_warning ("Unable to find changed permission in list!\n"); } }