1 /* 2 * Copyright (c) 2021-2023 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_APPACCOUNT_INNER_APP_ACCOUNT_MANAGER_H 17 #define OS_ACCOUNT_SERVICES_ACCOUNTMGR_INCLUDE_APPACCOUNT_INNER_APP_ACCOUNT_MANAGER_H 18 19 #include "ability_connect_callback_stub.h" 20 #include "app_account_authenticator_manager.h" 21 #include "app_account_authenticator_session_manager.h" 22 #include "app_account_authorization_extension_callback.h" 23 #include "app_account_control_manager.h" 24 #include "app_account_subscribe_manager.h" 25 26 namespace OHOS { 27 namespace AccountSA { 28 class InnerAppAccountManager { 29 public: 30 InnerAppAccountManager(); 31 virtual ~InnerAppAccountManager(); 32 33 ErrCode AddAccount(const std::string &name, const std::string &extraInfo, 34 const uid_t &uid, const std::string &bundleName, const uint32_t &appIndex); 35 ErrCode AddAccountImplicitly(const AuthenticatorSessionRequest &request); 36 ErrCode CreateAccount(const std::string &name, const CreateAccountOptions &options, 37 const uid_t &uid, const std::string &bundleName, const uint32_t &appIndex); 38 ErrCode CreateAccountImplicitly(const AuthenticatorSessionRequest &request); 39 ErrCode DeleteAccount( 40 const std::string &name, const uid_t &uid, const std::string &bundleName, const uint32_t &appIndex); 41 42 ErrCode GetAccountExtraInfo(const std::string &name, std::string &extraInfo, 43 const uid_t &uid, const std::string &bundleName, const uint32_t &appIndex); 44 ErrCode SetAccountExtraInfo(const std::string &name, const std::string &extraInfo, 45 const uid_t &uid, const std::string &bundleName, const uint32_t &appIndex); 46 47 ErrCode EnableAppAccess(const std::string &name, const std::string &authorizedApp, 48 AppAccountCallingInfo &appAccountCallingInfo, const uint32_t apiVersion = Constants::API_VERSION7); 49 ErrCode DisableAppAccess(const std::string &name, const std::string &authorizedApp, 50 AppAccountCallingInfo &appAccountCallingInfo, const uint32_t apiVersion = Constants::API_VERSION7); 51 ErrCode CheckAppAccess(const std::string &name, const std::string &authorizedApp, bool &isAccessible, 52 const AppAccountCallingInfo &appAccountCallingInfo); 53 54 ErrCode CheckAppAccountSyncEnable(const std::string &name, bool &syncEnable, 55 const uid_t &uid, const std::string &bundleName, const uint32_t &appIndex); 56 ErrCode SetAppAccountSyncEnable(const std::string &name, const bool &syncEnable, 57 const uid_t &uid, const std::string &bundleName, const uint32_t &appIndex); 58 59 ErrCode GetAssociatedData(const std::string &name, const std::string &key, 60 std::string &value, const uid_t &uid); 61 ErrCode SetAssociatedData(const std::string &name, const std::string &key, const std::string &value, 62 const AppAccountCallingInfo &appAccountCallingInfo); 63 64 ErrCode GetAccountCredential(const std::string &name, const std::string &credentialType, std::string &credential, 65 const AppAccountCallingInfo &appAccountCallingInfo); 66 ErrCode SetAccountCredential(const std::string &name, const std::string &credentialType, 67 const std::string &credential, const AppAccountCallingInfo &appAccountCallingInfo); 68 ErrCode DeleteAccountCredential(const std::string &name, const std::string &credentialType, 69 const uid_t &uid, const std::string &bundleName, const uint32_t &appIndex); 70 71 ErrCode Authenticate(const AuthenticatorSessionRequest &request); 72 ErrCode GetOAuthToken(const AuthenticatorSessionRequest &request, 73 std::string &token, const uint32_t apiVersion = Constants::API_VERSION8); 74 ErrCode SetOAuthToken(const AuthenticatorSessionRequest &request); 75 ErrCode DeleteOAuthToken( 76 const AuthenticatorSessionRequest &request, const uint32_t apiVersion = Constants::API_VERSION8); 77 ErrCode SetOAuthTokenVisibility(const AuthenticatorSessionRequest &request, 78 const uint32_t apiVersion = Constants::API_VERSION8); 79 ErrCode CheckOAuthTokenVisibility(const AuthenticatorSessionRequest &request, 80 bool &isVisible, const uint32_t apiVersion = Constants::API_VERSION8); 81 ErrCode GetAllOAuthTokens(const AuthenticatorSessionRequest &request, std::vector<OAuthTokenInfo> &tokenInfos); 82 ErrCode GetOAuthList(const AuthenticatorSessionRequest &request, 83 std::set<std::string> &oauthList, const uint32_t apiVersion = Constants::API_VERSION8); 84 ErrCode GetAuthenticatorCallback(const AuthenticatorSessionRequest &request, sptr<IRemoteObject> &callback); 85 ErrCode GetAuthenticatorInfo(const AuthenticatorSessionRequest &request, AuthenticatorInfo &info); 86 87 ErrCode GetAllAccounts(const std::string &owner, std::vector<AppAccountInfo> &appAccounts, const uid_t &uid, 88 const std::string &bundleName, const uint32_t &appIndex); 89 ErrCode GetAllAccessibleAccounts(std::vector<AppAccountInfo> &appAccounts, 90 const uid_t &uid, const std::string &bundleName, const uint32_t &appIndex); 91 92 ErrCode SelectAccountsByOptions( 93 const SelectAccountsOptions &options, const sptr<IAppAccountAuthenticatorCallback> &callback, 94 const uid_t &uid, const std::string &bundleName, const uint32_t &appIndex); 95 ErrCode VerifyCredential(const AuthenticatorSessionRequest &request); 96 ErrCode CheckAccountLabels(const AuthenticatorSessionRequest &request); 97 ErrCode SetAuthenticatorProperties(const AuthenticatorSessionRequest &request); 98 99 ErrCode SubscribeAppAccount(const AppAccountSubscribeInfo &subscribeInfo, const sptr<IRemoteObject> &eventListener, 100 const uid_t &uid, const std::string &bundleName, const uint32_t &appIndex); 101 ErrCode UnsubscribeAppAccount(const sptr<IRemoteObject> &eventListener); 102 103 ErrCode OnPackageRemoved(const uid_t &uid, const std::string &bundleName, const uint32_t &appIndex); 104 ErrCode OnUserRemoved(int32_t userId); 105 106 private: 107 AppAccountControlManager &controlManager_; 108 AppAccountSubscribeManager &subscribeManager_; 109 AppAccountAuthenticatorSessionManager &sessionManager_; 110 111 DISALLOW_COPY_AND_MOVE(InnerAppAccountManager); 112 }; 113 } // namespace AccountSA 114 } // namespace OHOS 115 116 #endif // OS_ACCOUNT_SERVICES_ACCOUNTMGR_INCLUDE_APPACCOUNT_INNER_APP_ACCOUNT_MANAGER_H 117