]> git.proxmox.com Git - mirror_edk2.git/blobdiff - SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileManager.c
Update the process of some question from EFI_BROWSER_ACTION_CHANGED to EFI_BROWSER_AC...
[mirror_edk2.git] / SecurityPkg / UserIdentification / UserProfileManagerDxe / UserProfileManager.c
index 74c979d58eec49f712ad57248abd44d27cfffa62..4bba0824c7abcf5effb5bf11684d5f50dfe906bc 100644 (file)
@@ -17,7 +17,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 \r
 #include "UserProfileManager.h"\r
 \r
-EFI_GUID                  mUserProfileManagerGuid = USER_PROFILE_MANAGER_GUID;\r
 EFI_USER_MANAGER_PROTOCOL *mUserManager           = NULL;\r
 CREDENTIAL_PROVIDER_INFO  *mProviderInfo          = NULL;\r
 UINT8                     mProviderChoice;\r
@@ -35,7 +34,7 @@ HII_VENDOR_DEVICE_PATH  mHiiVendorDevicePath = {
         (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8)\r
       }\r
     },\r
-    {0xad2e3474, 0x93e6, 0x488b, {0x93, 0x19, 0x64, 0x88, 0xfc, 0x68, 0x1f, 0x16}}\r
+    USER_PROFILE_MANAGER_GUID\r
   },\r
   {\r
     END_DEVICE_PATH_TYPE,\r
@@ -95,7 +94,7 @@ InitProviderInfo (
   HandleBuf   = NULL;\r
   Status = gBS->LocateHandleBuffer (\r
                   ByProtocol,\r
-                  &gEfiUserCredentialProtocolGuid,\r
+                  &gEfiUserCredential2ProtocolGuid,\r
                   NULL,\r
                   &HandleCount,\r
                   &HandleBuf\r
@@ -112,8 +111,8 @@ InitProviderInfo (
   }\r
   mProviderInfo = AllocateZeroPool (\r
                     sizeof (CREDENTIAL_PROVIDER_INFO) - \r
-                    sizeof (EFI_USER_CREDENTIAL_PROTOCOL *) +\r
-                    HandleCount * sizeof (EFI_USER_CREDENTIAL_PROTOCOL *)\r
+                    sizeof (EFI_USER_CREDENTIAL2_PROTOCOL *) +\r
+                    HandleCount * sizeof (EFI_USER_CREDENTIAL2_PROTOCOL *)\r
                     );\r
   if (mProviderInfo == NULL) {\r
     FreePool (HandleBuf);\r
@@ -124,7 +123,7 @@ InitProviderInfo (
   for (Index = 0; Index < HandleCount; Index++) {\r
     Status = gBS->HandleProtocol (\r
                     HandleBuf[Index],\r
-                    &gEfiUserCredentialProtocolGuid,\r
+                    &gEfiUserCredential2ProtocolGuid,\r
                     (VOID **) &mProviderInfo->Provider[Index]\r
                     );\r
     if (EFI_ERROR (Status)) {\r
@@ -293,7 +292,7 @@ UserProfileManagerCallback (
   \r
       HiiUpdateForm (\r
         mCallbackInfo->HiiHandle,               // HII handle\r
-        &mUserProfileManagerGuid,               // Formset GUID\r
+        &gUserProfileManagerGuid,               // Formset GUID\r
         FORMID_USER_MANAGE,                     // Form ID\r
         StartOpCodeHandle,                      // Label for where to insert opcodes\r
         EndOpCodeHandle                         // Replace data\r
@@ -310,7 +309,7 @@ UserProfileManagerCallback (
     Status = EFI_SUCCESS;\r
     break;\r
 \r
-  case EFI_BROWSER_ACTION_CHANGING:\r
+  case EFI_BROWSER_ACTION_CHANGED:\r
   {  \r
     //\r
     // Handle the request from form.\r
@@ -338,13 +337,6 @@ UserProfileManagerCallback (
       // Judge next 2 bits.\r
       //\r
       switch (QuestionId & KEY_SECOND_FORM_MASK) {\r
-      //\r
-      // Enter delete user profile form.\r
-      //\r
-      case KEY_ENTER_NEXT_FORM:\r
-        SelectUserToDelete ();\r
-        break;\r
-\r
       //\r
       // Delete specified user profile.\r
       //\r
@@ -369,13 +361,6 @@ UserProfileManagerCallback (
       // Judge next 2 bits.\r
       //\r
       switch (QuestionId & KEY_SECOND_FORM_MASK) {\r
-      //\r
-      // Enter modify user profile form.\r
-      //\r
-      case KEY_ENTER_NEXT_FORM:\r
-        SelectUserToModify ();\r
-        break;\r
-\r
       //\r
       // Enter user profile information form.\r
       //\r
@@ -384,13 +369,6 @@ UserProfileManagerCallback (
         // Judge next 3 bits.\r
         //\r
         switch (QuestionId & KEY_MODIFY_INFO_MASK) {\r
-        //\r
-        // Display user information form.\r
-        //\r
-        case KEY_ENTER_NEXT_FORM:\r
-          ModifyUserInfo ((UINT8) QuestionId);\r
-          break;\r
-\r
         //\r
         // Modify user name.\r
         //\r
@@ -410,19 +388,11 @@ UserProfileManagerCallback (
           // Judge next 3 bits\r
           //\r
           switch (QuestionId & KEY_MODIFY_IP_MASK) {\r
-          //\r
-          // Display identity policy modify form.\r
-          //\r
-          case KEY_ENTER_NEXT_FORM:\r
-            ModifyIdentityPolicy ();\r
-            break;\r
-\r
           //\r
           // Change credential provider option.\r
           //\r
           case KEY_MODIFY_PROV:         \r
             mProviderChoice = Value->u8;\r
-            *ActionRequest  = EFI_BROWSER_ACTION_REQUEST_SUBMIT;\r
             break;\r
 \r
           //\r
@@ -430,7 +400,6 @@ UserProfileManagerCallback (
           //\r
           case KEY_MODIFY_CONN:\r
             mConncetLogical = Value->u8;\r
-            *ActionRequest  = EFI_BROWSER_ACTION_REQUEST_SUBMIT;\r
             break;\r
 \r
           //\r
@@ -445,7 +414,7 @@ UserProfileManagerCallback (
           //\r
           case KEY_IP_RETURN_UIF:\r
             SaveIdentityPolicy ();\r
-            *ActionRequest = EFI_BROWSER_ACTION_REQUEST_SUBMIT;\r
+            *ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_SUBMIT_EXIT;\r
             break;\r
 \r
           default:\r
@@ -461,19 +430,11 @@ UserProfileManagerCallback (
           // Judge next 3 bits.\r
           //\r
           switch (QuestionId & KEY_MODIFY_AP_MASK) {\r
-          //\r
-          // Display access policy modify form.\r
-          //\r
-          case KEY_ENTER_NEXT_FORM:\r
-            ModidyAccessPolicy ();\r
-            break;\r
-\r
           //\r
           // Change access right choice.\r
           //\r
           case KEY_MODIFY_RIGHT:\r
             mAccessInfo.AccessRight = Value->u8;\r
-            *ActionRequest  = EFI_BROWSER_ACTION_REQUEST_SUBMIT;\r
             break;\r
 \r
           //\r
@@ -481,7 +442,6 @@ UserProfileManagerCallback (
           //\r
           case KEY_MODIFY_SETUP:\r
             mAccessInfo.AccessSetup= Value->u8;\r
-            *ActionRequest  = EFI_BROWSER_ACTION_REQUEST_SUBMIT;\r
             break;\r
 \r
           //\r
@@ -489,61 +449,6 @@ UserProfileManagerCallback (
           //\r
           case KEY_MODIFY_BOOT:\r
             mAccessInfo.AccessBootOrder = Value->u32;\r
-            *ActionRequest  = EFI_BROWSER_ACTION_REQUEST_SUBMIT;\r
-            break;\r
-\r
-          //\r
-          // Load device path form.\r
-          //\r
-          case KEY_MODIFY_LOAD:\r
-            //\r
-            // Judge next 2 bits.\r
-            //\r
-            switch (QuestionId & KEY_DISPLAY_DP_MASK) {\r
-            //\r
-            // Permit load device path.\r
-            //\r
-            case KEY_PERMIT_MODIFY:\r
-              DisplayLoadPermit ();\r
-              break;\r
-\r
-            //\r
-            // Forbid load device path.\r
-            //\r
-            case KEY_FORBID_MODIFY:\r
-              DisplayLoadForbid ();\r
-              break;\r
-\r
-            default:\r
-              break;\r
-            }\r
-            break;\r
-\r
-          //\r
-          // Connect device path form.\r
-          //\r
-          case KEY_MODIFY_CONNECT:\r
-            //\r
-            // Judge next 2 bits.\r
-            //\r
-            switch (QuestionId & KEY_DISPLAY_DP_MASK) {\r
-            //\r
-            // Permit connect device path.\r
-            //\r
-            case KEY_PERMIT_MODIFY:\r
-              DisplayConnectPermit ();\r
-              break;\r
-\r
-            //\r
-            // Forbid connect device path.\r
-            //\r
-            case KEY_FORBID_MODIFY:\r
-              DisplayConnectForbid ();\r
-              break;\r
-\r
-            default:\r
-              break;\r
-            }\r
             break;\r
 \r
           //\r
@@ -551,7 +456,7 @@ UserProfileManagerCallback (
           //\r
           case KEY_AP_RETURN_UIF:\r
             SaveAccessPolicy ();\r
-            *ActionRequest = EFI_BROWSER_ACTION_REQUEST_SUBMIT;\r
+            *ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_SUBMIT_EXIT;\r
             break;\r
 \r
           default:\r
@@ -648,6 +553,179 @@ UserProfileManagerCallback (
   }\r
   break;\r
 \r
+\r
+  case EFI_BROWSER_ACTION_CHANGING:\r
+  {  \r
+    //\r
+    // Handle the request from form.\r
+    //\r
+    if (Value == NULL) {\r
+      return EFI_INVALID_PARAMETER;\r
+    }\r
+    \r
+    //\r
+    // Judge first 2 bits.\r
+    //\r
+    switch (QuestionId & KEY_FIRST_FORM_MASK) {\r
+    //\r
+    // Delete user profile operation.\r
+    //\r
+    case KEY_DEL_USER:\r
+      //\r
+      // Judge next 2 bits.\r
+      //\r
+      switch (QuestionId & KEY_SECOND_FORM_MASK) {\r
+      //\r
+      // Enter delete user profile form.\r
+      //\r
+      case KEY_ENTER_NEXT_FORM:\r
+        SelectUserToDelete ();\r
+        break;\r
+\r
+      default:\r
+        break;\r
+      }\r
+      break;\r
+\r
+    //\r
+    // Modify user profile operation.\r
+    //\r
+    case KEY_MODIFY_USER:\r
+      //\r
+      // Judge next 2 bits.\r
+      //\r
+      switch (QuestionId & KEY_SECOND_FORM_MASK) {\r
+      //\r
+      // Enter modify user profile form.\r
+      //\r
+      case KEY_ENTER_NEXT_FORM:\r
+        SelectUserToModify ();\r
+        break;\r
+\r
+      //\r
+      // Enter user profile information form.\r
+      //\r
+      case KEY_SELECT_USER:\r
+        //\r
+        // Judge next 3 bits.\r
+        //\r
+        switch (QuestionId & KEY_MODIFY_INFO_MASK) {\r
+        //\r
+        // Display user information form.\r
+        //\r
+        case KEY_ENTER_NEXT_FORM:\r
+          ModifyUserInfo ((UINT8) QuestionId);\r
+          break;\r
+\r
+        //\r
+        // Modify identity policy.\r
+        //\r
+        case KEY_MODIFY_IP:\r
+          //\r
+          // Judge next 3 bits\r
+          //\r
+          switch (QuestionId & KEY_MODIFY_IP_MASK) {\r
+          //\r
+          // Display identity policy modify form.\r
+          //\r
+          case KEY_ENTER_NEXT_FORM:\r
+            ModifyIdentityPolicy ();\r
+            break;\r
+\r
+          default:\r
+            break;\r
+          }\r
+          break;\r
+\r
+        //\r
+        // Modify access policy.\r
+        //\r
+        case KEY_MODIFY_AP:\r
+          //\r
+          // Judge next 3 bits.\r
+          //\r
+          switch (QuestionId & KEY_MODIFY_AP_MASK) {\r
+          //\r
+          // Display access policy modify form.\r
+          //\r
+          case KEY_ENTER_NEXT_FORM:\r
+            ModidyAccessPolicy ();\r
+            break;\r
+          //\r
+          // Load device path form.\r
+          //\r
+          case KEY_MODIFY_LOAD:\r
+            //\r
+            // Judge next 2 bits.\r
+            //\r
+            switch (QuestionId & KEY_DISPLAY_DP_MASK) {\r
+            //\r
+            // Permit load device path.\r
+            //\r
+            case KEY_PERMIT_MODIFY:\r
+              DisplayLoadPermit ();\r
+              break;\r
+          \r
+            //\r
+            // Forbid load device path.\r
+            //\r
+            case KEY_FORBID_MODIFY:\r
+              DisplayLoadForbid ();\r
+              break;\r
+          \r
+            default:\r
+              break;\r
+            }\r
+            break;\r
+            \r
+          //\r
+          // Connect device path form.\r
+          //\r
+          case KEY_MODIFY_CONNECT:\r
+            //\r
+            // Judge next 2 bits.\r
+            //\r
+            switch (QuestionId & KEY_DISPLAY_DP_MASK) {\r
+            //\r
+            // Permit connect device path.\r
+            //\r
+            case KEY_PERMIT_MODIFY:\r
+              DisplayConnectPermit ();\r
+              break;\r
+          \r
+            //\r
+            // Forbid connect device path.\r
+            //\r
+            case KEY_FORBID_MODIFY:\r
+              DisplayConnectForbid ();\r
+              break;\r
+          \r
+            default:\r
+              break;\r
+            }\r
+            break;\r
+\r
+          default:\r
+            break;\r
+          }\r
+          break;\r
+\r
+        default:\r
+          break;\r
+        }\r
+        break;\r
+\r
+      default:\r
+        break;\r
+      }\r
+      break;\r
+\r
+    default:\r
+      break;\r
+    }\r
+  }\r
+  break;\r
+\r
   default:\r
     //\r
     // All other action return unsupported.\r
@@ -791,7 +869,7 @@ UserProfileManagerInit (
   // Publish HII data.\r
   //\r
   CallbackInfo->HiiHandle = HiiAddPackages (\r
-                              &mUserProfileManagerGuid,\r
+                              &gUserProfileManagerGuid,\r
                               CallbackInfo->DriverHandle,\r
                               UserProfileManagerStrings,\r
                               UserProfileManagerVfrBin,\r