From b63e09b1792e06ffc56226b2c21b82d232c6a0fa Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Sun, 15 Sep 2013 14:20:58 +0000 Subject: [PATCH 1/1] [USRMGR] Use NetLocalGroupGetMembers level 2 instead of level 1 in order to display the domain names of well-known groups in the group membership list. Skip the domain name for other account types. svn path=/trunk/; revision=60134 --- reactos/dll/cpl/usrmgr/groupprops.c | 31 ++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/reactos/dll/cpl/usrmgr/groupprops.c b/reactos/dll/cpl/usrmgr/groupprops.c index d34acd3eb51..a455446a912 100644 --- a/reactos/dll/cpl/usrmgr/groupprops.c +++ b/reactos/dll/cpl/usrmgr/groupprops.c @@ -389,7 +389,7 @@ GetGeneralGroupData(HWND hwndDlg, PGENERAL_GROUP_DATA pGroupData) { PLOCALGROUP_INFO_1 groupInfo = NULL; - PLOCALGROUP_MEMBERS_INFO_1 membersInfo = NULL; + PLOCALGROUP_MEMBERS_INFO_2 membersInfo = NULL; DWORD dwRead; DWORD dwTotal; DWORD_PTR resumeHandle = 0; @@ -435,7 +435,7 @@ GetGeneralGroupData(HWND hwndDlg, NetApiBufferFree(groupInfo); /* Set group members */ - NetLocalGroupGetMembers(NULL, pGroupData->szGroupName, 1, (LPBYTE*)&membersInfo, + NetLocalGroupGetMembers(NULL, pGroupData->szGroupName, 2, (LPBYTE*)&membersInfo, MAX_PREFERRED_LENGTH, &dwRead, &dwTotal, &resumeHandle); @@ -443,32 +443,45 @@ GetGeneralGroupData(HWND hwndDlg, { ZeroMemory(&lvi, sizeof(lvi)); lvi.mask = LVIF_TEXT | LVIF_STATE | LVIF_IMAGE; - lvi.pszText = membersInfo[i].lgrmi1_name; lvi.state = 0; - if (membersInfo[i].lgrmi1_sidusage == SidTypeGroup || - membersInfo[i].lgrmi1_sidusage == SidTypeWellKnownGroup) + if (membersInfo[i].lgrmi2_sidusage == SidTypeGroup || + membersInfo[i].lgrmi2_sidusage == SidTypeWellKnownGroup) { lvi.iImage = 0; } - else if (membersInfo[i].lgrmi1_sidusage == SidTypeUser) + else if (membersInfo[i].lgrmi2_sidusage == SidTypeUser) { /* FIXME: handle locked user properly! */ lvi.iImage = 1; } - if (membersInfo[i].lgrmi1_sidusage == SidTypeWellKnownGroup) + if (membersInfo[i].lgrmi2_sidusage == SidTypeWellKnownGroup) { TCHAR szSid[256]; - GetTextSid(membersInfo[i].lgrmi1_sid, szSid); + GetTextSid(membersInfo[i].lgrmi2_sid, szSid); wsprintf(szGroupName, TEXT("%s (%s)"), - membersInfo[i].lgrmi1_name, + membersInfo[i].lgrmi2_domainandname, szSid); lvi.pszText = szGroupName; } + else + { + LPWSTR ptr; + + ptr = wcschr(membersInfo[i].lgrmi2_domainandname, L'\\'); + if (ptr != NULL) + { + lvi.pszText = ++ptr; + } + else + { + lvi.pszText = membersInfo[i].lgrmi2_domainandname; + } + } (void)ListView_InsertItem(hwndLV, &lvi); } -- 2.17.1