From: Ben Kaduk Date: Fri, 22 May 2015 18:38:27 +0000 (-0400) Subject: Add leash column for the ccache name X-Git-Tag: krb5-1.14-alpha1~95 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b26d25e97cf3c53ef896092c71948011ceac645d;p=thirdparty%2Fkrb5.git Add leash column for the ccache name Previously, it was fairly easy to set the default cache to MSLSA:, which is not collection-enabled (as opposed to the normal default of API:, which is), and the non-collection behavior proved confusing to many users. Ideally there would be an option to choose the output ccache in the "Get Ticket" window, but that is more complicated to implement than just a display of what cache a given ticket is in. This extra display column should still help to alleviate user confusion. ticket: 8207 (new) queue: kfw tags: pullup target_version: 1.13.3 --- diff --git a/src/windows/leash/Leash.rc b/src/windows/leash/Leash.rc index d1e7f16767..798e629693 100644 --- a/src/windows/leash/Leash.rc +++ b/src/windows/leash/Leash.rc @@ -124,6 +124,7 @@ BEGIN MENUITEM "&Valid Until", ID_VALID_UNTIL MENUITEM "&Encryption Type", ID_ENCRYPTION_TYPE MENUITEM "&Flags", ID_SHOW_TICKET_FLAGS + MENUITEM "&Credential Cache Name", ID_CCACHE_NAME END POPUP "&Options" BEGIN @@ -968,6 +969,7 @@ BEGIN ID_FORGET_PRINCIPALS "Clear the Principal history. This only affects autocompletion in the Get Tickets and Change Password dialogs.\n Forget Principals" ID_ENCRYPTION_TYPE "Display column showing the encryption type for your tickets and session keys.\n Encryption Type" ID_VALID_UNTIL "Display column showing when your tickets will expire.\n Valid Until" + ID_CCACHE_NAME "Display column showing the name of the credential cache containing this ticket.\n Cache Name" END STRINGTABLE diff --git a/src/windows/leash/LeashUICommandHandler.cpp b/src/windows/leash/LeashUICommandHandler.cpp index 828640ff4a..762f957906 100644 --- a/src/windows/leash/LeashUICommandHandler.cpp +++ b/src/windows/leash/LeashUICommandHandler.cpp @@ -154,6 +154,9 @@ LeashUICommandHandler::Execute(UINT32 commandId, UI_EXECUTIONVERB verb, SendMessage(mainwin, WM_COMMAND, MAKEWPARAM(ID_SHOW_TICKET_FLAGS, 1), 0); break; + case cmdCcacheNameCheckBox: + SendMessage(mainwin, WM_COMMAND, MAKEWPARAM(ID_CCACHE_NAME, 1), 0); + break; case cmdAutoRenewCheckBox: SendMessage(mainwin, WM_COMMAND, MAKEWPARAM(ID_AUTO_RENEW, 1), 0); break; @@ -245,6 +248,8 @@ LeashUICommandHandler::UpdateProperty(UINT32 commandId, REFPROPERTYKEY key, return RegKeyToProperty("Encryption Type", false, newValue); case cmdFlagsCheckBox: return RegKeyToProperty("Flags", false, newValue); + case cmdCcacheNameCheckBox: + return RegKeyToProperty("Credential Cache", false, newValue); case cmdAutoRenewCheckBox: return RegKeyToProperty("AutoRenewTickets", true, newValue); case cmdExpireAlarmCheckBox: diff --git a/src/windows/leash/LeashView.cpp b/src/windows/leash/LeashView.cpp index c3d45a5735..745a16f055 100644 --- a/src/windows/leash/LeashView.cpp +++ b/src/windows/leash/LeashView.cpp @@ -66,11 +66,13 @@ BEGIN_MESSAGE_MAP(CLeashView, CListView) ON_COMMAND(ID_RENEWABLE_UNTIL, OnRenewableUntil) ON_COMMAND(ID_SHOW_TICKET_FLAGS, OnShowTicketFlags) ON_COMMAND(ID_ENCRYPTION_TYPE, OnEncryptionType) + ON_COMMAND(ID_CCACHE_NAME, OnCcacheName) ON_UPDATE_COMMAND_UI(ID_TIME_ISSUED, OnUpdateTimeIssued) ON_UPDATE_COMMAND_UI(ID_VALID_UNTIL, OnUpdateValidUntil) ON_UPDATE_COMMAND_UI(ID_RENEWABLE_UNTIL, OnUpdateRenewableUntil) ON_UPDATE_COMMAND_UI(ID_SHOW_TICKET_FLAGS, OnUpdateShowTicketFlags) ON_UPDATE_COMMAND_UI(ID_ENCRYPTION_TYPE, OnUpdateEncryptionType) + ON_UPDATE_COMMAND_UI(ID_CCACHE_NAME, OnUpdateCcacheName) ON_COMMAND(ID_UPPERCASE_REALM, OnUppercaseRealm) ON_COMMAND(ID_KILL_TIX_ONEXIT, OnKillTixOnExit) ON_UPDATE_COMMAND_UI(ID_UPPERCASE_REALM, OnUpdateUppercaseRealm) @@ -149,6 +151,7 @@ ViewColumnInfo CLeashView::sm_viewColumns[] = {"Valid Until", true, ID_VALID_UNTIL, 100}, // VALID_UNTIL {"Encryption Type", false, ID_ENCRYPTION_TYPE, 100}, // ENCRYPTION_TYPE {"Flags", false, ID_SHOW_TICKET_FLAGS, 100}, // TICKET_FLAGS + {"Credential Cache", false, ID_CCACHE_NAME, 105}, // CACHE_NAME }; static struct TicketFlag { @@ -1126,7 +1129,8 @@ void CLeashView::AddDisplayItem(CListCtrl &list, long valid_until, long renew_until, char *encTypes, - unsigned long flags) + unsigned long flags, + char *ccache_name) { TCHAR* localTimeStr=NULL; TCHAR* durationStr=NULL; @@ -1185,6 +1189,9 @@ void CLeashView::AddDisplayItem(CListCtrl &list, krb5TicketFlagsToString(flags, &flagsStr); list.SetItemText(iItem, iSubItem++, flagsStr); } + if (sm_viewColumns[CACHE_NAME].m_enabled) { + list.SetItemText(iItem, iSubItem++, ccache_name); + } if (flagsStr) free(flagsStr); if (localTimeStr) @@ -1477,7 +1484,8 @@ VOID CLeashView::OnUpdateDisplay() principal->valid_until, principal->renew_until, "", - principal->flags); + principal->flags, + principal->ccache_name); if (elem->m_expanded) { for (tempList = principal->ticket_list; tempList != NULL; @@ -1490,7 +1498,8 @@ VOID CLeashView::OnUpdateDisplay() tempList->valid_until, tempList->renew_until, tempList->encTypes, - tempList->flags); + tempList->flags, + principal->ccache_name); } } if ((elem->m_focus >= 0) && @@ -1803,6 +1812,16 @@ VOID CLeashView::OnUpdateEncryptionType(CCmdUI *pCmdUI) pCmdUI->SetCheck(sm_viewColumns[ENCRYPTION_TYPE].m_enabled); } +VOID CLeashView::OnCcacheName() +{ + ToggleViewColumn(CACHE_NAME); +} + +VOID CLeashView::OnUpdateCcacheName(CCmdUI *pCmdUI) +{ + pCmdUI->SetCheck(sm_viewColumns[CACHE_NAME].m_enabled); +} + VOID CLeashView::OnLargeIcons() { INT x, y, n; diff --git a/src/windows/leash/LeashView.h b/src/windows/leash/LeashView.h index 1e362115a4..190c93be13 100644 --- a/src/windows/leash/LeashView.h +++ b/src/windows/leash/LeashView.h @@ -83,6 +83,7 @@ enum eViewColumn { VALID_UNTIL, ENCRYPTION_TYPE, TICKET_FLAGS, + CACHE_NAME, NUM_VIEW_COLUMNS }; @@ -221,7 +222,8 @@ private: long valid_until, long renew_until, char *encTypes, - unsigned long flags); + unsigned long flags, + char *cache_name); void SetTrayIcon(int nim, int state=0); void SetTrayText(int nim, CString tip); @@ -305,6 +307,7 @@ protected: afx_msg VOID OnRenewableUntil(); afx_msg VOID OnShowTicketFlags(); afx_msg VOID OnEncryptionType(); + afx_msg VOID OnCcacheName(); afx_msg VOID OnUppercaseRealm(); afx_msg VOID OnKillTixOnExit(); afx_msg VOID OnDestroy(); @@ -317,6 +320,7 @@ protected: afx_msg VOID OnUpdateRenewableUntil(CCmdUI* pCmdUI); afx_msg VOID OnUpdateShowTicketFlags(CCmdUI* pCmdUI); afx_msg VOID OnUpdateEncryptionType(CCmdUI* pCmdUI); + afx_msg VOID OnUpdateCcacheName(CCmdUI* pCmdUI); afx_msg VOID OnUpdateUppercaseRealm(CCmdUI* pCmdUI); afx_msg VOID OnUpdateKillTixOnExit(CCmdUI* pCmdUI); afx_msg VOID OnUpdateLowTicketAlarm(CCmdUI* pCmdUI); diff --git a/src/windows/leash/kfwribbon.xml b/src/windows/leash/kfwribbon.xml index 8245b7b22e..975991b0a5 100644 --- a/src/windows/leash/kfwribbon.xml +++ b/src/windows/leash/kfwribbon.xml @@ -62,6 +62,9 @@ + @@ -117,6 +120,7 @@ + diff --git a/src/windows/leash/resource.h b/src/windows/leash/resource.h index 27fd67e8bd..5f606fc6cc 100644 --- a/src/windows/leash/resource.h +++ b/src/windows/leash/resource.h @@ -339,6 +339,7 @@ #define ID_EXPORT_TICKET 32837 #define ID_AUTO_IMPORT_TICKET 32838 #define ID_AUTO_IMPORT_TICKETS 32840 +#define ID_CCACHE_NAME 32841 // Next default values for new objects //