fixed IsUserAdmin and enable the calls to it
authorThomas Bluemel <thomas@reactsoft.com>
Sat, 17 Dec 2005 21:13:36 +0000 (21:13 +0000)
committerThomas Bluemel <thomas@reactsoft.com>
Sat, 17 Dec 2005 21:13:36 +0000 (21:13 +0000)
svn path=/trunk/; revision=20232

reactos/lib/newdev/newdev.c
reactos/lib/setupapi/cfgmgr.c
reactos/lib/setupapi/misc.c

index edb74b5..2352335 100644 (file)
@@ -1018,16 +1018,12 @@ DevInstallW(
     PROPSHEETPAGE psp;
     BOOL ret;
     DWORD config_flags;
-    /*TCHAR buf[128];*/
-
-    /* FIXME: Nov 2005. umpnpmgr.exe is directly calling DevInstallW in
-     * SYSTEM context, which is not member of the Administrators group.
-     * So, just ignore the test at the moment... */
-    //if (!IsUserAdmin())
-    //{
-    //    /* XP kills the process... */
-    //    ExitProcess(ERROR_ACCESS_DENIED);
-    //}
+
+    if (!IsUserAdmin())
+    {
+        /* XP kills the process... */
+        ExitProcess(ERROR_ACCESS_DENIED);
+    }
 
     /* Clear devinst data */
     ZeroMemory(&DevInstData, sizeof(DEVINSTDATA));
index a9037c0..707ee15 100644 (file)
@@ -104,7 +104,7 @@ CONFIGRET WINAPI CMP_Report_LogOn(
     if (!PnpGetLocalHandles(&BindingHandle, NULL))
         return CR_FAILURE;
 
-    bAdmin = TRUE; //IsUserAdmin();
+    bAdmin = IsUserAdmin();
 
     for (i = 0; i < 30; i++)
     {
@@ -256,8 +256,8 @@ CONFIGRET WINAPI CM_Disable_DevNode_Ex(
 
     FIXME("%p %lx %p\n", dnDevInst, ulFlags, hMachine);
 
-//    if (!IsUserAdmin())
-//        return CR_ACCESS_DENIED;
+    if (!IsUserAdmin())
+        return CR_ACCESS_DENIED;
 
     if (dnDevInst == 0)
         return CR_INVALID_DEVINST;
@@ -341,8 +341,8 @@ CONFIGRET WINAPI CM_Enable_DevNode_Ex(
 
     FIXME("%p %lx %p\n", dnDevInst, ulFlags, hMachine);
 
-//    if (!IsUserAdmin())
-//        return CR_ACCESS_DENIED;
+    if (!IsUserAdmin())
+        return CR_ACCESS_DENIED;
 
     if (dnDevInst == 0)
         return CR_INVALID_DEVINST;
@@ -1921,8 +1921,8 @@ CONFIGRET WINAPI CM_Move_DevNode_Ex(
     FIXME("%lx %lx %lx %lx\n",
           dnFromDevInst, dnToDevInst, ulFlags, hMachine);
 
-//    if (!IsUserAdmin())
-//        return CR_ACCESS_DENIED;
+    if (!IsUserAdmin())
+        return CR_ACCESS_DENIED;
 
     if (dnFromDevInst == 0 || dnToDevInst == 0)
         return CR_INVALID_DEVNODE;
@@ -2236,8 +2236,8 @@ CONFIGRET WINAPI CM_Run_Detection_Ex(
 
     TRACE("%lx %lx\n", ulFlags, hMachine);
 
-//    if (!IsUserAdmin())
-//        return CR_ACCESS_DENIED;
+    if (!IsUserAdmin())
+        return CR_ACCESS_DENIED;
 
     if (ulFlags & ~CM_DETECT_BITS)
         return CR_INVALID_FLAG;
@@ -2616,8 +2616,8 @@ CONFIGRET WINAPI CM_Setup_DevNode_Ex(
 
     FIXME("%lx %lx %lx\n", dnDevInst, ulFlags, hMachine);
 
-//    if (!IsUserAdmin())
-//        return CR_ACCESS_DENIED;
+    if (!IsUserAdmin())
+        return CR_ACCESS_DENIED;
 
     if (dnDevInst == 0)
         return CR_INVALID_DEVNODE;
index 76cbac6..ab8ab0a 100644 (file)
@@ -234,7 +234,7 @@ BOOL WINAPI IsUserAdmin(VOID)
 
     for (i = 0; i < lpGroups->GroupCount; i++)
     {
-        if (EqualSid(lpSid, &lpGroups->Groups[i].Sid))
+        if (EqualSid(lpSid, lpGroups->Groups[i].Sid))
         {
             bResult = TRUE;
             break;