]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Add leash column for the ccache name
authorBen Kaduk <kaduk@mit.edu>
Fri, 22 May 2015 18:38:27 +0000 (14:38 -0400)
committerBen Kaduk <kaduk@mit.edu>
Wed, 24 Jun 2015 18:20:39 +0000 (14:20 -0400)
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

src/windows/leash/Leash.rc
src/windows/leash/LeashUICommandHandler.cpp
src/windows/leash/LeashView.cpp
src/windows/leash/LeashView.h
src/windows/leash/kfwribbon.xml
src/windows/leash/resource.h

index d1e7f1676713429154a173d46588fc15664447b2..798e62969348cb8411a9542b84feb468a4c39b83 100644 (file)
@@ -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
index 828640ff4a7c5649761368b69c2117081977fcb3..762f957906a58133af985e4f9369f362db17434a 100644 (file)
@@ -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:
index c3d45a5735164e668ef44a06074e931f24fdec7e..745a16f0551500cd4d2d63dd13993a06b32734a8 100644 (file)
@@ -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;
index 1e362115a474b39b646326a9c1af2fb0d416003d..190c93be136eee009b4658a529b290623819141e 100644 (file)
@@ -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);
index 8245b7b22e1592085ac2bdeee3b163748ac8a0f9..975991b0a57d04a466638b5acaf0eb3bc2a84e12 100644 (file)
@@ -62,6 +62,9 @@
     <Command Name="cmdFlagsCheckBox"
              LabelTitle="Flags"
              Keytip="F" />
+    <Command Name="cmdCcacheNameCheckBox"
+             LabelTitle="Credential Cache Name"
+             Keytip="N" />
     <Command Name="cmdAutoRenewCheckBox"
              LabelTitle="Automatic Ticket Renewal"
              Keytip="R" />
             <CheckBox CommandName="cmdValidUntilCheckBox" />
             <CheckBox CommandName="cmdEncTypeCheckBox" />
             <CheckBox CommandName="cmdFlagsCheckBox" />
+            <CheckBox CommandName="cmdCcacheNameCheckBox" />
           </Group>
           <Group CommandName="cmdTicketOptionsGroup" >
             <CheckBox CommandName="cmdAutoRenewCheckBox" />
index 27fd67e8bdde52d3a336a731c2bd274ec18c6caa..5f606fc6cc3ddd619982099267eadfb0f5be62de 100644 (file)
 #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
 //