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_APP_ACCOUNT_PROXY_H 17 #define OS_ACCOUNT_SERVICES_ACCOUNTMGR_INCLUDE_APPACCOUNT_APP_ACCOUNT_PROXY_H 18 19 #include "iapp_account.h" 20 #include "iremote_proxy.h" 21 22 namespace OHOS { 23 namespace AccountSA { 24 class AppAccountProxy : public IRemoteProxy<IAppAccount> { 25 public: 26 explicit AppAccountProxy(const sptr<IRemoteObject> &object); 27 ~AppAccountProxy() override; 28 29 ErrCode AddAccount(const std::string &name, const std::string &extraInfo) override; 30 ErrCode AddAccountImplicitly(const std::string &owner, const std::string &authType, 31 const AAFwk::Want &options, const sptr<IAppAccountAuthenticatorCallback> &callback) override; 32 ErrCode CreateAccount(const std::string &name, const CreateAccountOptions &options) override; 33 ErrCode CreateAccountImplicitly(const std::string &owner, const CreateAccountImplicitlyOptions &options, 34 const sptr<IAppAccountAuthenticatorCallback> &callback) override; 35 ErrCode DeleteAccount(const std::string &name) override; 36 37 ErrCode GetAccountExtraInfo(const std::string &name, std::string &extraInfo) override; 38 ErrCode SetAccountExtraInfo(const std::string &name, const std::string &extraInfo) override; 39 40 ErrCode EnableAppAccess(const std::string &name, const std::string &authorizedApp) override; 41 ErrCode DisableAppAccess(const std::string &name, const std::string &authorizedApp) override; 42 ErrCode SetAppAccess(const std::string &name, const std::string &authorizedApp, bool isAccessible) override; 43 ErrCode CheckAppAccess(const std::string &name, const std::string &authorizedApp, bool &isAccessible) override; 44 45 ErrCode CheckAppAccountSyncEnable(const std::string &name, bool &syncEnable) override; 46 ErrCode SetAppAccountSyncEnable(const std::string &name, const bool &syncEnable) override; 47 48 ErrCode GetAssociatedData(const std::string &name, const std::string &key, std::string &value) override; 49 ErrCode SetAssociatedData(const std::string &name, const std::string &key, const std::string &value) override; 50 51 ErrCode GetAccountCredential( 52 const std::string &name, const std::string &credentialType, std::string &credential) override; 53 ErrCode SetAccountCredential( 54 const std::string &name, const std::string &credentialType, const std::string &credential) override; 55 ErrCode DeleteAccountCredential(const std::string &name, const std::string &credentialType) override; 56 57 ErrCode Authenticate(const std::string &name, const std::string &owner, const std::string &authType, 58 const AAFwk::Want &options, const sptr<IAppAccountAuthenticatorCallback> &callback) override; 59 ErrCode GetOAuthToken( 60 const std::string &name, const std::string &owner, const std::string &authType, std::string &token) override; 61 ErrCode GetAuthToken( 62 const std::string &name, const std::string &owner, const std::string &authType, std::string &token) override; 63 ErrCode SetOAuthToken( 64 const std::string &name, const std::string &authType, const std::string &token) override; 65 ErrCode DeleteOAuthToken(const std::string &name, const std::string &owner, const std::string &authType, 66 const std::string &token) override; 67 ErrCode DeleteAuthToken(const std::string &name, const std::string &owner, const std::string &authType, 68 const std::string &token) override; 69 ErrCode SetOAuthTokenVisibility( 70 const std::string &name, const std::string &authType, const std::string &bundleName, bool isVisible) override; 71 ErrCode SetAuthTokenVisibility( 72 const std::string &name, const std::string &authType, const std::string &bundleName, bool isVisible) override; 73 ErrCode CheckOAuthTokenVisibility( 74 const std::string &name, const std::string &authType, const std::string &bundleName, bool &isVisible) override; 75 ErrCode CheckAuthTokenVisibility( 76 const std::string &name, const std::string &authType, const std::string &bundleName, bool &isVisible) override; 77 ErrCode GetAuthenticatorInfo(const std::string &owner, AuthenticatorInfo &info) override; 78 ErrCode GetAllOAuthTokens( 79 const std::string &name, const std::string &owner, std::vector<OAuthTokenInfo> &tokenInfos) override; 80 ErrCode GetOAuthList( 81 const std::string &name, const std::string &authType, std::set<std::string> &oauthList) override; 82 ErrCode GetAuthList( 83 const std::string &name, const std::string &authType, std::set<std::string> &oauthList) override; 84 ErrCode GetAuthenticatorCallback(const std::string &sessionId, sptr<IRemoteObject> &callback) override; 85 86 ErrCode GetAllAccounts(const std::string &owner, std::vector<AppAccountInfo> &appAccounts) override; 87 ErrCode GetAllAccessibleAccounts(std::vector<AppAccountInfo> &appAccounts) override; 88 ErrCode QueryAllAccessibleAccounts(const std::string &owner, std::vector<AppAccountInfo> &appAccounts) override; 89 90 ErrCode SelectAccountsByOptions( 91 const SelectAccountsOptions &options, const sptr<IAppAccountAuthenticatorCallback> &callback) override; 92 ErrCode VerifyCredential(const std::string &name, const std::string &owner, 93 const VerifyCredentialOptions &options, const sptr<IAppAccountAuthenticatorCallback> &callback) override; 94 ErrCode CheckAccountLabels(const std::string &name, const std::string &owner, 95 const std::vector<std::string> &labels, const sptr<IAppAccountAuthenticatorCallback> &callback) override; 96 ErrCode SetAuthenticatorProperties(const std::string &owner, const SetPropertiesOptions &options, 97 const sptr<IAppAccountAuthenticatorCallback> &callback) override; 98 ErrCode SubscribeAppAccount( 99 AppAccountSubscribeInfo &subscribeInfo, const sptr<IRemoteObject> &eventListener) override; 100 ErrCode UnsubscribeAppAccount(const sptr<IRemoteObject> &eventListener) override; 101 102 private: 103 ErrCode SendRequest(AppAccountInterfaceCode code, MessageParcel &data, MessageParcel &reply); 104 ErrCode WriteGetAuthListParam( 105 const std::string &name, const std::string &authType, MessageParcel &data); 106 ErrCode WriteGetAuthTokenParam( 107 const std::string &name, const std::string &owner, const std::string &authType, MessageParcel &data); 108 ErrCode WriteDeleteAuthTokenParam(const std::string &name, 109 const std::string &owner, const std::string &authType, const std::string &token, MessageParcel &data); 110 ErrCode WriteTokenVisibilityParam( 111 const std::string &name, const std::string &authType, const std::string &bundleName, MessageParcel &data); 112 ErrCode SendRequestWithTwoStr(MessageParcel &reply, AppAccountInterfaceCode code, 113 const std::string &str1, const std::string &str2); 114 bool ReadAppAccountList(MessageParcel &parcel, std::vector<AppAccountInfo> &accountList); 115 116 private: 117 static inline BrokerDelegator<AppAccountProxy> delegator_; 118 }; 119 } // namespace AccountSA 120 } // namespace OHOS 121 122 #endif // OS_ACCOUNT_SERVICES_ACCOUNTMGR_INCLUDE_APPACCOUNT_APP_ACCOUNT_PROXY_H 123