From af874ef836cedf1034bc51eb65a99e9ea4fdc904 Mon Sep 17 00:00:00 2001 From: Guo Mang Date: Thu, 27 Apr 2017 11:09:17 +0800 Subject: SecurityPkg: Move to new location Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Guo Mang --- .../UserProfileManagerDxe/UserProfileDelete.c | 343 --------------------- 1 file changed, 343 deletions(-) delete mode 100644 SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileDelete.c (limited to 'SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileDelete.c') diff --git a/SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileDelete.c b/SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileDelete.c deleted file mode 100644 index 8be302e1cc..0000000000 --- a/SecurityPkg/UserIdentification/UserProfileManagerDxe/UserProfileDelete.c +++ /dev/null @@ -1,343 +0,0 @@ -/** @file - The functions to delete a user profile. - -Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.
-This program and the accompanying materials -are licensed and made available under the terms and conditions of the BSD License -which accompanies this distribution. The full text of the license may be found at -http://opensource.org/licenses/bsd-license.php - -THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. - -**/ - -#include "UserProfileManager.h" - -/** - Get the username from the specified user. - - @param[in] User Handle of a user profile. - - @retval EFI_STRING_ID The String Id of the user's username. - -**/ -EFI_STRING_ID -GetUserName ( - IN EFI_USER_PROFILE_HANDLE User - ) -{ - EFI_STATUS Status; - EFI_USER_INFO_HANDLE UserInfo; - EFI_USER_INFO *Info; - UINTN InfoSize; - UINTN MemSize; - UINTN NameLen; - CHAR16 UserName[USER_NAME_LENGTH]; - EFI_STRING_ID UserId; - - // - // Allocate user information memory. - // - MemSize = sizeof (EFI_USER_INFO) + 63; - Info = AllocateZeroPool (MemSize); - ASSERT (Info != NULL); - - // - // Get user name information. - // - UserInfo = NULL; - while (TRUE) { - InfoSize = MemSize; - // - // Get next user information. - // - Status = mUserManager->GetNextInfo ( - mUserManager, - User, - &UserInfo - ); - if (EFI_ERROR (Status)) { - break; - } - - Status = mUserManager->GetInfo ( - mUserManager, - User, - UserInfo, - Info, - &InfoSize - ); - if (Status == EFI_BUFFER_TOO_SMALL) { - MemSize = InfoSize; - FreePool (Info); - Info = AllocateZeroPool (MemSize); - ASSERT (Info != NULL); - - Status = mUserManager->GetInfo ( - mUserManager, - User, - UserInfo, - Info, - &InfoSize - ); - } - // - // Check user information. - // - if (Status == EFI_SUCCESS) { - if (Info->InfoType == EFI_USER_INFO_NAME_RECORD) { - NameLen = Info->InfoSize - sizeof (EFI_USER_INFO); - if (NameLen > USER_NAME_LENGTH * sizeof (CHAR16)) { - NameLen = USER_NAME_LENGTH * sizeof (CHAR16); - } - ASSERT (NameLen >= sizeof (CHAR16)); - CopyMem (UserName, (UINT8 *) (Info + 1), NameLen); - UserName[NameLen / sizeof (CHAR16) - 1] = 0; - UserId = HiiSetString ( - mCallbackInfo->HiiHandle, - 0, - UserName, - NULL - ); - if (UserId != 0) { - FreePool (Info); - return UserId; - } - } - } - } - - FreePool (Info); - return 0; -} - - -/** - Add a username item in form. - - @param[in] User Points to the user profile whose username is added. - @param[in] Index The index of the user in the user name list - @param[in] OpCodeHandle Points to container for dynamic created opcodes. - -**/ -VOID -AddUserToForm ( - IN EFI_USER_PROFILE_HANDLE User, - IN UINT16 Index, - IN VOID *OpCodeHandle - ) -{ - EFI_STRING_ID NameId; - - // - // Get user name - // - NameId = GetUserName (User); - if (NameId == 0) { - return ; - } - - // - // Create user name option. - // - switch (Index & KEY_FIRST_FORM_MASK) { - case KEY_MODIFY_USER: - HiiCreateGotoOpCode ( - OpCodeHandle, // Container for dynamic created opcodes - FORMID_USER_INFO, // Target Form ID - NameId, // Prompt text - STRING_TOKEN (STR_NULL_STRING), // Help text - EFI_IFR_FLAG_CALLBACK, // Question flag - Index // Question ID - ); - break; - - case KEY_DEL_USER: - HiiCreateActionOpCode ( - OpCodeHandle, // Container for dynamic created opcodes - Index, // Question ID - NameId, // Prompt text - STRING_TOKEN (STR_NULL_STRING), // Help text - EFI_IFR_FLAG_CALLBACK, // Question flag - 0 // Action String ID - ); - break; - - default: - break; - } -} - - -/** - Delete the user specified by UserIndex in user profile database. - - @param[in] UserIndex The index of user in the user name list - to be deleted. - -**/ -VOID -DeleteUser ( - IN UINT8 UserIndex - ) -{ - EFI_STATUS Status; - EFI_USER_PROFILE_HANDLE User; - EFI_INPUT_KEY Key; - EFI_USER_INFO_HANDLE UserInfo; - EFI_USER_INFO *Info; - UINTN InfoSize; - - // - // Find specified user profile and delete it. - // - User = NULL; - Status = mUserManager->GetNext (mUserManager, &User); - if (EFI_ERROR (Status)) { - goto Done; - } - - while (UserIndex > 1) { - Status = mUserManager->GetNext (mUserManager, &User); - if (EFI_ERROR (Status)) { - goto Done; - } - UserIndex--; - } - - if (UserIndex == 1) { - // - // Get the identification policy. - // - Status = FindInfoByType (User, EFI_USER_INFO_IDENTITY_POLICY_RECORD, &UserInfo); - if (EFI_ERROR (Status)) { - goto Done; - } - - InfoSize = 0; - Info = NULL; - Status = mUserManager->GetInfo (mUserManager, User, UserInfo, Info, &InfoSize); - if (Status == EFI_BUFFER_TOO_SMALL) { - Info = AllocateZeroPool (InfoSize); - if (Info == NULL) { - goto Done; - } - Status = mUserManager->GetInfo (mUserManager, User, UserInfo, Info, &InfoSize); - } - - // - // Delete the user on the credential providers by its identification policy. - // - ASSERT (Info != NULL); - DeleteCredentialFromProviders ((UINT8 *)(Info + 1), Info->InfoSize - sizeof (EFI_USER_INFO), User); - FreePool (Info); - - Status = mUserManager->Delete (mUserManager, User); - if (EFI_ERROR (Status)) { - goto Done; - } - CreatePopUp ( - EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE, - &Key, - L"Delete User Succeed!", - L"", - L"Please Press Any Key to Continue ...", - NULL - ); - return ; - } - -Done: - CreatePopUp ( - EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE, - &Key, - L"Delete User Failed!", - L"", - L"Please Press Any Key to Continue ...", - NULL - ); -} - - -/** - Display user select form, cab select a user to delete. - -**/ -VOID -SelectUserToDelete ( - VOID - ) -{ - EFI_STATUS Status; - UINT8 Index; - EFI_USER_PROFILE_HANDLE User; - EFI_USER_PROFILE_HANDLE CurrentUser; - VOID *StartOpCodeHandle; - VOID *EndOpCodeHandle; - EFI_IFR_GUID_LABEL *StartLabel; - EFI_IFR_GUID_LABEL *EndLabel; - - // - // Initialize the container for dynamic opcodes. - // - StartOpCodeHandle = HiiAllocateOpCodeHandle (); - ASSERT (StartOpCodeHandle != NULL); - - EndOpCodeHandle = HiiAllocateOpCodeHandle (); - ASSERT (EndOpCodeHandle != NULL); - - // - // Create Hii Extend Label OpCode. - // - StartLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode ( - StartOpCodeHandle, - &gEfiIfrTianoGuid, - NULL, - sizeof (EFI_IFR_GUID_LABEL) - ); - StartLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL; - StartLabel->Number = LABEL_USER_DEL_FUNC; - - EndLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode ( - EndOpCodeHandle, - &gEfiIfrTianoGuid, - NULL, - sizeof (EFI_IFR_GUID_LABEL) - ); - EndLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL; - EndLabel->Number = LABEL_END; - - // - // Add each user can be deleted. - // - User = NULL; - Index = 1; - mUserManager->Current (mUserManager, &CurrentUser); - while (TRUE) { - Status = mUserManager->GetNext (mUserManager, &User); - if (EFI_ERROR (Status)) { - break; - } - - if (User != CurrentUser) { - AddUserToForm ( - User, - (UINT16)(KEY_DEL_USER | KEY_SELECT_USER | Index), - StartOpCodeHandle - ); - } - Index++; - } - - HiiUpdateForm ( - mCallbackInfo->HiiHandle, // HII handle - &gUserProfileManagerGuid, // Formset GUID - FORMID_DEL_USER, // Form ID - StartOpCodeHandle, // Label for where to insert opcodes - EndOpCodeHandle // Replace data - ); - - HiiFreeOpCodeHandle (StartOpCodeHandle); - HiiFreeOpCodeHandle (EndOpCodeHandle); -} -- cgit v1.2.3