1 /* 2 * Copyright (c) 2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef OS_ACCOUNT_SERVICES_ACCOUNTMGR_INCLUDE_ACCOUNT_IAM_CALLBACK_H 17 #define OS_ACCOUNT_SERVICES_ACCOUNTMGR_INCLUDE_ACCOUNT_IAM_CALLBACK_H 18 19 #include <map> 20 #include <vector> 21 #include "account_iam_info.h" 22 #include "iaccount_iam_callback.h" 23 24 namespace OHOS { 25 namespace AccountSA { 26 class AuthCallback : public AuthenticationCallback { 27 public: 28 explicit AuthCallback(uint32_t userId, AuthType authType, const sptr<IIDMCallback> &callback); 29 virtual ~AuthCallback() = default; 30 31 void OnAcquireInfo(int32_t module, uint32_t acquireInfo, const Attributes &extraInfo) override; 32 void OnResult(int32_t result, const Attributes &extraInfo) override; 33 34 private: 35 std::uint32_t userId_; 36 AuthType authType_; 37 sptr<IIDMCallback> innerCallback_ = nullptr; 38 }; 39 40 class IDMAuthCallback : public AuthenticationCallback { 41 public: 42 explicit IDMAuthCallback(uint32_t userId, const CredentialParameters &credInfo, 43 int32_t oldResult, const Attributes &reqResult, const sptr<IIDMCallback> &idmCallback); 44 virtual ~IDMAuthCallback() = default; 45 46 void OnResult(int32_t result, const Attributes &extraInfo) override; 47 void OnAcquireInfo(int32_t module, uint32_t acquireInfo, const Attributes &extraInfo) override; 48 49 private: 50 uint32_t userId_; 51 CredentialParameters credInfo_; 52 int32_t oldResult_; 53 Attributes reqResult_; 54 sptr<IIDMCallback> idmCallback_ = nullptr; 55 uint64_t credentialId_ = 0; 56 }; 57 58 class AddCredCallback : public UserIdmClientCallback { 59 public: 60 explicit AddCredCallback(uint32_t userId, const CredentialParameters &credInfo, 61 const sptr<IIDMCallback> &callback); 62 virtual ~AddCredCallback() = default; 63 64 void OnResult(int32_t result, const Attributes &extraInfo) override; 65 void OnAcquireInfo(int32_t module, uint32_t acquireInfo, const Attributes &extraInfo) override; 66 67 private: 68 std::uint32_t userId_; 69 CredentialParameters credInfo_; 70 const sptr<IIDMCallback> innerCallback_ = nullptr; 71 }; 72 73 class UpdateCredCallback : public UserIdmClientCallback { 74 public: 75 explicit UpdateCredCallback(uint32_t userId, const CredentialParameters &credInfo, 76 const sptr<IIDMCallback> &callback); 77 virtual ~UpdateCredCallback() = default; 78 79 void OnResult(int32_t result, const Attributes &extraInfo) override; 80 void OnAcquireInfo(int32_t module, uint32_t acquireInfo, const Attributes &extraInfo) override; 81 82 private: 83 std::uint32_t userId_; 84 std::vector<uint8_t> oldCredential_; 85 CredentialParameters credInfo_; 86 const sptr<IIDMCallback> innerCallback_ = nullptr; 87 }; 88 89 class DelCredCallback : public UserIdmClientCallback { 90 public: 91 explicit DelCredCallback(int32_t userId, uint64_t credentialId, const std::vector<uint8_t> &authToken, 92 const sptr<IIDMCallback> &callback); 93 virtual ~DelCredCallback() = default; 94 95 void OnResult(int32_t result, const Attributes &extraInfo) override; 96 void OnAcquireInfo(int32_t module, uint32_t acquireInfo, const Attributes &extraInfo) override; 97 98 private: 99 int32_t userId_; 100 uint64_t credentialId_; 101 std::vector<uint8_t> authToken_; 102 const sptr<IIDMCallback> innerCallback_ = nullptr; 103 }; 104 105 class GetCredInfoCallbackWrapper : public GetCredentialInfoCallback { 106 public: 107 explicit GetCredInfoCallbackWrapper( 108 int32_t userId, int32_t authType, const sptr<IGetCredInfoCallback> &callback); 109 virtual ~GetCredInfoCallbackWrapper() = default; 110 111 void OnCredentialInfo(const std::vector<CredentialInfo> &infoList) override; 112 113 private: 114 int32_t userId_; 115 int32_t authType_; 116 sptr<IGetCredInfoCallback> innerCallback_ = nullptr; 117 }; 118 119 class GetPropCallbackWrapper : public GetPropCallback { 120 public: 121 explicit GetPropCallbackWrapper(const sptr<IGetSetPropCallback> &callback); 122 virtual ~GetPropCallbackWrapper() = default; 123 124 void OnResult(int32_t result, const Attributes &extraInfo) override; 125 126 private: 127 sptr<IGetSetPropCallback> innerCallback_; 128 }; 129 130 class SetPropCallbackWrapper : public SetPropCallback { 131 public: 132 explicit SetPropCallbackWrapper(const sptr<IGetSetPropCallback> &callback); 133 virtual ~SetPropCallbackWrapper() = default; 134 135 void OnResult(int32_t result, const Attributes &extraInfo) override; 136 137 private: 138 sptr<IGetSetPropCallback> innerCallback_; 139 }; 140 } // namespace AccountSA 141 } // namespace OHOS 142 #endif // OS_ACCOUNT_SERVICES_ACCOUNTMGR_INCLUDE_ACCOUNT_IAM_CALLBACK_H 143