10fbfc30aSopenharmony_ci/** 20fbfc30aSopenharmony_ci * @file Describe the file 30fbfc30aSopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd. 40fbfc30aSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 50fbfc30aSopenharmony_ci * you may not use this file except in compliance with the License. 60fbfc30aSopenharmony_ci * You may obtain a copy of the License at 70fbfc30aSopenharmony_ci * 80fbfc30aSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 90fbfc30aSopenharmony_ci * 100fbfc30aSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 110fbfc30aSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 120fbfc30aSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 130fbfc30aSopenharmony_ci * See the License for the specific language governing permissions and 140fbfc30aSopenharmony_ci * limitations under the License. 150fbfc30aSopenharmony_ci */ 160fbfc30aSopenharmony_ci 170fbfc30aSopenharmony_ciimport abilityAccessCtrl, { Permissions } from '@ohos.abilityAccessCtrl'; 180fbfc30aSopenharmony_ciimport { Log } from '@ohos/common/src/main/ets/utils/Log'; 190fbfc30aSopenharmony_ci 200fbfc30aSopenharmony_ciconst TAG = 'CalendarUriHelper' 210fbfc30aSopenharmony_ci 220fbfc30aSopenharmony_ci/** 230fbfc30aSopenharmony_ci * Verify whether the current calling application has this permission by tokenID 240fbfc30aSopenharmony_ci * 250fbfc30aSopenharmony_ci * @param tokenId indicates the user's tokenID ,the tokenID can be a string or number 260fbfc30aSopenharmony_ci * @return the uri string without BundleName and TokenID in case of changing this data. 270fbfc30aSopenharmony_ci */ 280fbfc30aSopenharmony_ciexport async function verifyAccessByTokenId(tokenId: string, permissionName: Permissions): Promise<boolean> { 290fbfc30aSopenharmony_ci let atManager = abilityAccessCtrl.createAtManager(); 300fbfc30aSopenharmony_ci let result: abilityAccessCtrl.GrantStatus = 2; 310fbfc30aSopenharmony_ci try { 320fbfc30aSopenharmony_ci result = await atManager.checkAccessToken(Number.parseInt(tokenId), permissionName); 330fbfc30aSopenharmony_ci } catch (err) { 340fbfc30aSopenharmony_ci Log.error(TAG, `err=${err?.message}`); 350fbfc30aSopenharmony_ci } 360fbfc30aSopenharmony_ci 370fbfc30aSopenharmony_ci if (result === null || result === undefined) { 380fbfc30aSopenharmony_ci return false; 390fbfc30aSopenharmony_ci } 400fbfc30aSopenharmony_ci 410fbfc30aSopenharmony_ci if (result === abilityAccessCtrl.GrantStatus.PERMISSION_GRANTED) { 420fbfc30aSopenharmony_ci // Allow the visitor to call the interface provided by the current application 430fbfc30aSopenharmony_ci Log.debug(TAG, "This application has been authorized to access"); 440fbfc30aSopenharmony_ci return true; 450fbfc30aSopenharmony_ci } 460fbfc30aSopenharmony_ci // Prohibit the visitor to call the interface provided by the current application 470fbfc30aSopenharmony_ci Log.debug(TAG, "This application is NOT authorized to access"); 480fbfc30aSopenharmony_ci return false; 490fbfc30aSopenharmony_ci}