Commit 39894c24 authored by Alexander Nicolaysen Sørnes's avatar Alexander Nicolaysen Sørnes Committed by Alexandre Julliard

netapi32: Improve NetUserGetLocalGroups stub.

Report the user as member of the admins group.
parent 5d687f40
......@@ -417,6 +417,10 @@ NetUserGetLocalGroups(LPCWSTR servername, LPCWSTR username, DWORD level,
LPDWORD entriesread, LPDWORD totalentries)
{
NET_API_STATUS status;
const WCHAR admins[] = {'A','d','m','i','n','i','s','t','r','a','t','o','r','s',0};
LPWSTR currentuser;
LOCALGROUP_USERS_INFO_0* info;
DWORD size;
FIXME("(%s, %s, %d, %08x, %p %d, %p, %p) stub!\n",
debugstr_w(servername), debugstr_w(username), level, flags, bufptr,
......@@ -426,12 +430,37 @@ NetUserGetLocalGroups(LPCWSTR servername, LPCWSTR username, DWORD level,
if (status != NERR_Success)
return status;
if (!NETAPI_FindUser(username))
size = UNLEN + 1;
NetApiBufferAllocate(size, (LPVOID*)&currentuser);
GetUserNameW(currentuser, &size);
if (lstrcmpiW(username, currentuser) && NETAPI_FindUser(username))
{
NetApiBufferFree(currentuser);
return NERR_UserNotFound;
}
NetApiBufferFree(currentuser);
*totalentries = 1;
size = sizeof(*info) + sizeof(admins);
if(prefmaxlen < size)
status = ERROR_MORE_DATA;
else
status = NetApiBufferAllocate(size, (LPVOID*)&info);
if(status != NERR_Success)
{
*bufptr = NULL;
*entriesread = 0;
return status;
}
info->lgrui0_name = (LPWSTR)((LPBYTE)info + sizeof(*info));
lstrcpyW(info->lgrui0_name, admins);
if (bufptr) *bufptr = NULL;
if (entriesread) *entriesread = 0;
if (totalentries) *totalentries = 0;
*bufptr = (LPBYTE)info;
*entriesread = 1;
return NERR_Success;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment