From: =?UTF-8?q?Guido=20G=C3=BCnther?= Date: Tue, 29 Sep 2009 13:33:41 +0200 Subject: [PATCH] Add some ticket flags to the dialog --- src/krb5-auth-dialog.c | 9 +++++++++ src/krb5-auth-tickets.c | 41 ++++++++++++++++++++++++++++++++--------- src/krb5-auth-tickets.h | 3 +++ 3 files changed, 44 insertions(+), 9 deletions(-) diff --git a/src/krb5-auth-dialog.c b/src/krb5-auth-dialog.c index b8f95c2..e831db2 100644 --- a/src/krb5-auth-dialog.c +++ b/src/krb5-auth-dialog.c @@ -309,6 +309,8 @@ ka_get_service_tickets (GtkListStore *tickets) ccache, &cursor, &creds)) == 0) { + gboolean renewable, proxiable, forwardable; + if (creds.times.starttime) ka_format_time(creds.times.starttime, start_time, sizeof(start_time)); @@ -325,6 +327,10 @@ ka_get_service_tickets (GtkListStore *tickets) "%s (%s)", end_time, _("Expired")); + forwardable = get_cred_forwardable(&creds); + renewable = get_cred_renewable(&creds); + proxiable = get_cred_proxiable(&creds); + ret = krb5_unparse_name (kcontext, creds.server, &name); if (!ret) { gtk_list_store_append(tickets, &iter); @@ -332,6 +338,9 @@ ka_get_service_tickets (GtkListStore *tickets) PRINCIPAL_COLUMN, name, START_TIME_COLUMN, start_time, END_TIME_COLUMN, end_time_markup, + FORWARDABLE_COLUMN, forwardable, + RENEWABLE_COLUMN, renewable, + PROXIABLE_COLUMN, proxiable, -1); free(name); } else diff --git a/src/krb5-auth-tickets.c b/src/krb5-auth-tickets.c index e926324..b00687c 100644 --- a/src/krb5-auth-tickets.c +++ b/src/krb5-auth-tickets.c @@ -32,38 +32,61 @@ static GtkWidget *tickets_dialog; GtkWidget* ka_tickets_dialog_create(GtkBuilder *xml) { - GtkCellRenderer *renderer; + GtkCellRenderer *text_renderer, *toggle_renderer; GtkTreeViewColumn *column; GtkTreeView *tickets_view; tickets = gtk_list_store_new (N_COLUMNS, G_TYPE_STRING, G_TYPE_STRING, - G_TYPE_STRING); + G_TYPE_STRING, + G_TYPE_BOOLEAN, + G_TYPE_BOOLEAN, + G_TYPE_BOOLEAN); tickets_dialog = GTK_WIDGET (gtk_builder_get_object (xml, "krb5_tickets_dialog")); tickets_view = GTK_TREE_VIEW (gtk_builder_get_object (xml, "krb5_tickets_treeview")); gtk_tree_view_set_model(GTK_TREE_VIEW(tickets_view), GTK_TREE_MODEL(tickets)); - renderer = gtk_cell_renderer_text_new (); - column = gtk_tree_view_column_new_with_attributes("Principal", - renderer, + text_renderer = gtk_cell_renderer_text_new(); + toggle_renderer = gtk_cell_renderer_toggle_new(); + + column = gtk_tree_view_column_new_with_attributes(_("Principal"), + text_renderer, "text", PRINCIPAL_COLUMN, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (tickets_view), column); - column = gtk_tree_view_column_new_with_attributes("Start Time", - renderer, + column = gtk_tree_view_column_new_with_attributes(_("Start Time"), + text_renderer, "text", START_TIME_COLUMN, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (tickets_view), column); - column = gtk_tree_view_column_new_with_attributes("End Time", - renderer, + column = gtk_tree_view_column_new_with_attributes(_("End Time"), + text_renderer, "markup", END_TIME_COLUMN, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (tickets_view), column); + column = gtk_tree_view_column_new_with_attributes(_("Fwd"), + toggle_renderer, + "active", + FORWARDABLE_COLUMN, + NULL); + gtk_tree_view_append_column (GTK_TREE_VIEW (tickets_view), column); + column = gtk_tree_view_column_new_with_attributes(_("Proxy"), + toggle_renderer, + "active", + PROXIABLE_COLUMN, + NULL); + gtk_tree_view_append_column (GTK_TREE_VIEW (tickets_view), column); + column = gtk_tree_view_column_new_with_attributes(_("Renew"), + toggle_renderer, + "active", + RENEWABLE_COLUMN, + NULL); + gtk_tree_view_append_column (GTK_TREE_VIEW (tickets_view), column); return tickets_dialog; } diff --git a/src/krb5-auth-tickets.h b/src/krb5-auth-tickets.h index a5fa869..02d67b3 100644 --- a/src/krb5-auth-tickets.h +++ b/src/krb5-auth-tickets.h @@ -25,6 +25,9 @@ enum ticket_columns { PRINCIPAL_COLUMN, START_TIME_COLUMN, END_TIME_COLUMN, + FORWARDABLE_COLUMN, + RENEWABLE_COLUMN, + PROXIABLE_COLUMN, N_COLUMNS }; --