diff --git a/permissionmanager/src/main/ets/GlobalExtAbility/GlobalExtAbility.ts b/permissionmanager/src/main/ets/GlobalExtAbility/GlobalExtAbility.ts index 182e84f12ffeeb4b62bfd4e9ced66525cd83b519..9fd26c620ca3042e8173862880f2e66f79edf0e1 100644 --- a/permissionmanager/src/main/ets/GlobalExtAbility/GlobalExtAbility.ts +++ b/permissionmanager/src/main/ets/GlobalExtAbility/GlobalExtAbility.ts @@ -36,12 +36,12 @@ export default class GlobalExtensionAbility extends extension { GlobalContext.store('context', this.context); if (!this.permissionCheck()) { - this.context.terminateSelf(); + this.context?.terminateSelf(); return; } if (!this.statusCheck(want.parameters['ohos.sensitive.resource'])) { - this.context.terminateSelf(); + this.context?.terminateSelf(); return; } diff --git a/permissionmanager/src/main/ets/PermissionSheet/GlobalSwitchSheetAbility.ets b/permissionmanager/src/main/ets/PermissionSheet/GlobalSwitchSheetAbility.ets index dd71c78c0f607638b0b76ec3e37d6f7104859f6e..c9bd505cad75f0e9b987d46aa5121e9a464e9fea 100644 --- a/permissionmanager/src/main/ets/PermissionSheet/GlobalSwitchSheetAbility.ets +++ b/permissionmanager/src/main/ets/PermissionSheet/GlobalSwitchSheetAbility.ets @@ -68,7 +68,7 @@ export default class GlobalSwitchSheetAbility extends UIExtensionAbility { }) } - onSessionDestroy(session: UIExtensionContentSession): void { + onSessionDestroy(): void { Log.info('OnSessionDestroy start'); try { Log.info('try to reshow non-secure windows.'); diff --git a/permissionmanager/src/main/ets/PermissionSheet/PermissionStateSheetAbility.ets b/permissionmanager/src/main/ets/PermissionSheet/PermissionStateSheetAbility.ets index 4f6f1729b59b1d68d99d916e3793eeaad92c45b2..c92f91acea9f09429813fedcb618d6f6b798e045 100644 --- a/permissionmanager/src/main/ets/PermissionSheet/PermissionStateSheetAbility.ets +++ b/permissionmanager/src/main/ets/PermissionSheet/PermissionStateSheetAbility.ets @@ -68,7 +68,7 @@ export default class PermissionStateSheetAbility extends UIExtensionAbility { }) } - onSessionDestroy(session: UIExtensionContentSession): void { + onSessionDestroy(): void { Log.info('OnSessionDestroy start'); try { Log.info('try to reshow non-secure windows.'); diff --git a/permissionmanager/src/main/ets/PermissionSheet/PermissionStateSheetDialog.ets b/permissionmanager/src/main/ets/PermissionSheet/PermissionStateSheetDialog.ets index 39f4a4455d8a6c3a295885eab84171c3f55cfaf8..14ad85d95b73b30ae5cb2b1014b7e83d7e83dbfb 100644 --- a/permissionmanager/src/main/ets/PermissionSheet/PermissionStateSheetDialog.ets +++ b/permissionmanager/src/main/ets/PermissionSheet/PermissionStateSheetDialog.ets @@ -82,7 +82,7 @@ struct PermissionStateSheetDialog { storage.get('session') as UIExtensionContentSession; @State applicationInfo: AppInfo | undefined = undefined; @State folderStatus: boolean[] = [false, false, false]; - @State reqUserPermissions: Permissions[] = []; + @State reqUserPermissions: Permission[] = []; @State bundleName: string = ''; @State isGranted: number = Constants.PERMISSION_ALLOW; @State groupName: ResourceStr = ''; @@ -210,7 +210,7 @@ struct PermissionStateSheetDialog { async GetAppInfo() { let callerBundle: CallerBundleInfo = getCallerBundleInfo(this.want as Object as WantInfo); this.bundleName = callerBundle.bundleName; - this.reqUserPermissions = callerBundle.permissionGroup as Permissions[]; // user permission is passed from wantInfo + this.reqUserPermissions = callerBundle.permissionGroup as Permission[]; // user permission is passed from wantInfo // check if wanted permissions are in the same permission group let groupName = checkPermissionGroup(this.reqUserPermissions); if (groupName == null) { @@ -352,7 +352,7 @@ struct mediaDocumentItem { private context = getContext(this) as common.UIAbilityContext; private backTitle: ResourceStr = ''; private bundleName: string = ''; - private permissions: Permissions[] = []; + private permissions: Permission[] = []; private status: number = 0; private tokenId: number = 0; private controller: CustomDialogController; diff --git a/permissionmanager/src/main/ets/common/model/permissionGroup.ets b/permissionmanager/src/main/ets/common/model/permissionGroup.ets index ed4665fce3602a02ca3a47becbe783267edd773d..f1ad0ac1d69505ea6968bad747003b40c44911a2 100644 --- a/permissionmanager/src/main/ets/common/model/permissionGroup.ets +++ b/permissionmanager/src/main/ets/common/model/permissionGroup.ets @@ -16,61 +16,61 @@ import { PermissionInfo, GroupInfo } from './typedef'; import { Permission, PermissionGroup, ButtonStatus } from './definition'; -export const permissionGroups: PermissionInfo[] = [ - new PermissionInfo(Permission.LOCATION_IN_BACKGROUND, PermissionGroup.LOCATION, $r('sys.string.ohos_lab_location_in_background'), 0), - new PermissionInfo(Permission.APPROXIMATELY_LOCATION, PermissionGroup.LOCATION, $r('sys.string.ohos_lab_approximately_location'), 0), - new PermissionInfo(Permission.LOCATION, PermissionGroup.LOCATION, $r('sys.string.ohos_lab_location'), 0), - new PermissionInfo(Permission.CAMERA, PermissionGroup.CAMERA, $r('sys.string.ohos_lab_camera'), 1), - new PermissionInfo(Permission.MICROPHONE, PermissionGroup.MICROPHONE, $r('sys.string.ohos_lab_microphone'), 2), - new PermissionInfo(Permission.READ_CONTACTS, PermissionGroup.CONTACTS, $r('sys.string.ohos_lab_read_contacts'), 3, 'app.string.enable_description_read_contacts', $r('app.string.forbidden_description_read_contacts')), - new PermissionInfo(Permission.WRITE_CONTACTS, PermissionGroup.CONTACTS, $r('sys.string.ohos_lab_write_contacts'), 3, 'app.string.enable_description_write_contacts', $r('app.string.forbidden_description_write_contacts')), - new PermissionInfo(Permission.READ_CALENDAR, PermissionGroup.CALENDAR, $r('sys.string.ohos_lab_read_calendar'), 4, 'app.string.enable_description_read_calendar', $r('app.string.forbidden_description_read_calendar')), - new PermissionInfo(Permission.WRITE_CALENDAR, PermissionGroup.CALENDAR, $r('sys.string.ohos_lab_write_calendar'), 4, 'app.string.enable_description_write_calendar', $r('app.string.forbidden_description_write_calendar')), - new PermissionInfo(Permission.READ_WHOLE_CALENDAR, PermissionGroup.CALENDAR, $r('sys.string.ohos_lab_read_whole_calendar'), 4, 'app.string.enable_description_read_whole_calendar', $r('app.string.forbidden_description_read_whole_calendar')), - new PermissionInfo(Permission.WRITE_WHOLE_CALENDAR, PermissionGroup.CALENDAR, $r('sys.string.ohos_lab_write_whole_calendar'), 4, 'app.string.enable_description_write_whole_calendar', $r('app.string.forbidden_description_write_whole_calendar')), - new PermissionInfo(Permission.ACTIVITY_MOTION, PermissionGroup.SPORT, $r('sys.string.ohos_lab_activity_motion'), 5), - new PermissionInfo(Permission.READ_HEALTH_DATA, PermissionGroup.HEALTH, $r('sys.string.ohos_lab_read_health_data'), 6), - new PermissionInfo(Permission.READ_IMAGEVIDEO, PermissionGroup.IMAGE_AND_VIDEOS, $r('sys.string.ohos_desc_read_imagevideo'), 8), - new PermissionInfo(Permission.WRITE_IMAGEVIDEO, PermissionGroup.IMAGE_AND_VIDEOS, $r('sys.string.ohos_desc_write_imagevideo'), 8), - new PermissionInfo(Permission.MEDIA_LOCATION, PermissionGroup.IMAGE_AND_VIDEOS, $r('sys.string.ohos_lab_media_location'), 8), - new PermissionInfo(Permission.READ_AUDIO, PermissionGroup.AUDIOS, $r('sys.string.ohos_desc_read_audio'), 9), - new PermissionInfo(Permission.WRITE_AUDIO, PermissionGroup.AUDIOS, $r('sys.string.ohos_desc_write_audio'), 9), - new PermissionInfo(Permission.READ_DOCUMENT, PermissionGroup.DOCUMENTS, $r('sys.string.ohos_desc_read_document'), 10), - new PermissionInfo(Permission.WRITE_DOCUMENT, PermissionGroup.DOCUMENTS, $r('sys.string.ohos_desc_write_document'), 10), - new PermissionInfo(Permission.READ_MEDIA, PermissionGroup.DOCUMENTS, $r('sys.string.ohos_lab_read_media'), 10), - new PermissionInfo(Permission.WRITE_MEDIA, PermissionGroup.DOCUMENTS, $r('sys.string.ohos_lab_write_media'), 10), - new PermissionInfo(Permission.APP_TRACKING_CONSENT, PermissionGroup.ADS, $r('sys.string.ohos_lab_app_tracking_consent'), 11), - new PermissionInfo(Permission.GET_INSTALLED_BUNDLE_LIST, PermissionGroup.GET_INSTALLED_BUNDLE_LIST, $r('sys.string.ohos_lab_get_installed_bundle_list'), 12), - new PermissionInfo(Permission.DISTRIBUTED_DATASYNC, PermissionGroup.DISTRIBUTED_DATASYNC, $r('sys.string.ohos_lab_distributed_datasync'), 13), - new PermissionInfo(Permission.ACCESS_BLUETOOTH, PermissionGroup.BLUETOOTH, $r('sys.string.ohos_lab_access_bluetooth'), 14), - new PermissionInfo(Permission.READ_PASTEBOARD, PermissionGroup.PASTEBOARD, $r('sys.string.ohos_lab_read_pasteboard'), 15), - new PermissionInfo(Permission.READ_WRITE_DOWNLOAD_DIRECTORY, PermissionGroup.FOLDER, $r('sys.string.ohos_lab_read_write_download_directory'), 16), - new PermissionInfo(Permission.READ_WRITE_DESKTOP_DIRECTORY, PermissionGroup.FOLDER, $r('sys.string.ohos_lab_read_write_desktop_directory'), 16), - new PermissionInfo(Permission.READ_WRITE_DOCUMENTS_DIRECTORY, PermissionGroup.FOLDER, $r('sys.string.ohos_lab_read_write_documents_directory'), 16), - new PermissionInfo(Permission.ACCESS_NEARLINK, PermissionGroup.NEARLINK, $r('sys.string.ohos_lab_access_nearlink'), 17), - new PermissionInfo(Permission.CUSTOM_SCREEN_CAPTURE, PermissionGroup.CUSTOM_SCREEN_CAPTURE, $r('sys.string.ohos_lab_custom_screen_capture'), 18) -] +export const permissionInfos: Map = new Map([ + [Permission.LOCATION_IN_BACKGROUND, new PermissionInfo(Permission.LOCATION_IN_BACKGROUND, PermissionGroup.LOCATION, $r('sys.string.ohos_lab_location_in_background'), 0)], + [Permission.APPROXIMATELY_LOCATION, new PermissionInfo(Permission.APPROXIMATELY_LOCATION, PermissionGroup.LOCATION, $r('sys.string.ohos_lab_approximately_location'), 0)], + [Permission.LOCATION, new PermissionInfo(Permission.LOCATION, PermissionGroup.LOCATION, $r('sys.string.ohos_lab_location'), 0)], + [Permission.CAMERA, new PermissionInfo(Permission.CAMERA, PermissionGroup.CAMERA, $r('sys.string.ohos_lab_camera'), 1)], + [Permission.MICROPHONE, new PermissionInfo(Permission.MICROPHONE, PermissionGroup.MICROPHONE, $r('sys.string.ohos_lab_microphone'), 2)], + [Permission.READ_CONTACTS, new PermissionInfo(Permission.READ_CONTACTS, PermissionGroup.CONTACTS, $r('sys.string.ohos_lab_read_contacts'), 3, 'app.string.enable_description_read_contacts', $r('app.string.forbidden_description_read_contacts'))], + [Permission.WRITE_CONTACTS, new PermissionInfo(Permission.WRITE_CONTACTS, PermissionGroup.CONTACTS, $r('sys.string.ohos_lab_write_contacts'), 3, 'app.string.enable_description_write_contacts', $r('app.string.forbidden_description_write_contacts'))], + [Permission.READ_CALENDAR, new PermissionInfo(Permission.READ_CALENDAR, PermissionGroup.CALENDAR, $r('sys.string.ohos_lab_read_calendar'), 4, 'app.string.enable_description_read_calendar', $r('app.string.forbidden_description_read_calendar'))], + [Permission.WRITE_CALENDAR, new PermissionInfo(Permission.WRITE_CALENDAR, PermissionGroup.CALENDAR, $r('sys.string.ohos_lab_write_calendar'), 4, 'app.string.enable_description_write_calendar', $r('app.string.forbidden_description_write_calendar'))], + [Permission.READ_WHOLE_CALENDAR, new PermissionInfo(Permission.READ_WHOLE_CALENDAR, PermissionGroup.CALENDAR, $r('sys.string.ohos_lab_read_whole_calendar'), 4, 'app.string.enable_description_read_whole_calendar', $r('app.string.forbidden_description_read_whole_calendar'))], + [Permission.WRITE_WHOLE_CALENDAR, new PermissionInfo(Permission.WRITE_WHOLE_CALENDAR, PermissionGroup.CALENDAR, $r('sys.string.ohos_lab_write_whole_calendar'), 4, 'app.string.enable_description_write_whole_calendar', $r('app.string.forbidden_description_write_whole_calendar'))], + [Permission.ACTIVITY_MOTION, new PermissionInfo(Permission.ACTIVITY_MOTION, PermissionGroup.SPORT, $r('sys.string.ohos_lab_activity_motion'), 5)], + [Permission.READ_HEALTH_DATA, new PermissionInfo(Permission.READ_HEALTH_DATA, PermissionGroup.HEALTH, $r('sys.string.ohos_lab_read_health_data'), 6)], + [Permission.READ_IMAGEVIDEO, new PermissionInfo(Permission.READ_IMAGEVIDEO, PermissionGroup.IMAGE_AND_VIDEOS, $r('sys.string.ohos_desc_read_imagevideo'), 8)], + [Permission.WRITE_IMAGEVIDEO, new PermissionInfo(Permission.WRITE_IMAGEVIDEO, PermissionGroup.IMAGE_AND_VIDEOS, $r('sys.string.ohos_desc_write_imagevideo'), 8)], + [Permission.MEDIA_LOCATION, new PermissionInfo(Permission.MEDIA_LOCATION, PermissionGroup.IMAGE_AND_VIDEOS, $r('sys.string.ohos_lab_media_location'), 8)], + [Permission.READ_AUDIO, new PermissionInfo(Permission.READ_AUDIO, PermissionGroup.AUDIOS, $r('sys.string.ohos_desc_read_audio'), 9)], + [Permission.WRITE_AUDIO, new PermissionInfo(Permission.WRITE_AUDIO, PermissionGroup.AUDIOS, $r('sys.string.ohos_desc_write_audio'), 9)], + [Permission.READ_DOCUMENT, new PermissionInfo(Permission.READ_DOCUMENT, PermissionGroup.DOCUMENTS, $r('sys.string.ohos_desc_read_document'), 10)], + [Permission.WRITE_DOCUMENT, new PermissionInfo(Permission.WRITE_DOCUMENT, PermissionGroup.DOCUMENTS, $r('sys.string.ohos_desc_write_document'), 10)], + [Permission.READ_MEDIA, new PermissionInfo(Permission.READ_MEDIA, PermissionGroup.DOCUMENTS, $r('sys.string.ohos_lab_read_media'), 10)], + [Permission.WRITE_MEDIA, new PermissionInfo(Permission.WRITE_MEDIA, PermissionGroup.DOCUMENTS, $r('sys.string.ohos_lab_write_media'), 10)], + [Permission.APP_TRACKING_CONSENT, new PermissionInfo(Permission.APP_TRACKING_CONSENT, PermissionGroup.ADS, $r('sys.string.ohos_lab_app_tracking_consent'), 11)], + [Permission.GET_INSTALLED_BUNDLE_LIST, new PermissionInfo(Permission.GET_INSTALLED_BUNDLE_LIST, PermissionGroup.GET_INSTALLED_BUNDLE_LIST, $r('sys.string.ohos_lab_get_installed_bundle_list'), 12)], + [Permission.DISTRIBUTED_DATASYNC, new PermissionInfo(Permission.DISTRIBUTED_DATASYNC, PermissionGroup.DISTRIBUTED_DATASYNC, $r('sys.string.ohos_lab_distributed_datasync'), 13)], + [Permission.ACCESS_BLUETOOTH, new PermissionInfo(Permission.ACCESS_BLUETOOTH, PermissionGroup.BLUETOOTH, $r('sys.string.ohos_lab_access_bluetooth'), 14)], + [Permission.READ_PASTEBOARD, new PermissionInfo(Permission.READ_PASTEBOARD, PermissionGroup.PASTEBOARD, $r('sys.string.ohos_lab_read_pasteboard'), 15)], + [Permission.READ_WRITE_DOWNLOAD_DIRECTORY, new PermissionInfo(Permission.READ_WRITE_DOWNLOAD_DIRECTORY, PermissionGroup.FOLDER, $r('sys.string.ohos_lab_read_write_download_directory'), 16)], + [Permission.READ_WRITE_DESKTOP_DIRECTORY, new PermissionInfo(Permission.READ_WRITE_DESKTOP_DIRECTORY, PermissionGroup.FOLDER, $r('sys.string.ohos_lab_read_write_desktop_directory'), 16)], + [Permission.READ_WRITE_DOCUMENTS_DIRECTORY, new PermissionInfo(Permission.READ_WRITE_DOCUMENTS_DIRECTORY, PermissionGroup.FOLDER, $r('sys.string.ohos_lab_read_write_documents_directory'), 16)], + [Permission.ACCESS_NEARLINK, new PermissionInfo(Permission.ACCESS_NEARLINK, PermissionGroup.NEARLINK, $r('sys.string.ohos_lab_access_nearlink'), 17)], + [Permission.CUSTOM_SCREEN_CAPTURE, new PermissionInfo(Permission.CUSTOM_SCREEN_CAPTURE, PermissionGroup.CUSTOM_SCREEN_CAPTURE, $r('sys.string.ohos_lab_custom_screen_capture'), 18)] +]) export const groups: GroupInfo[] = [ - new GroupInfo(PermissionGroup.LOCATION, $r('app.string.groupName_location'), 'app.string.group_label_location', $r('app.media.ic_public_gps'), [], '', ['ohos.permission.LOCATION_IN_BACKGROUND', 'ohos.permission.APPROXIMATELY_LOCATION', 'ohos.permission.LOCATION'], [ButtonStatus.ALLOW_ONLY_DURING_USE, ButtonStatus.ALLOW_THIS_TIME, ButtonStatus.CANCEL], true, 'app.string.enable_description_location', $r('app.string.forbidden_description_location')), - new GroupInfo(PermissionGroup.CAMERA, $r('app.string.groupName_camera'), 'app.string.group_label_camera', $r('app.media.ic_public_camera'), [], '', ['ohos.permission.CAMERA'], [ButtonStatus.DENY, ButtonStatus.ALLOW], true, 'app.string.enable_description_camera', $r('app.string.forbidden_description_camera')), - new GroupInfo(PermissionGroup.MICROPHONE, $r('app.string.groupName_microphone'), 'app.string.group_label_microphone', $r('app.media.ic_public_voice'), [], '', ['ohos.permission.MICROPHONE'], [ButtonStatus.DENY, ButtonStatus.ALLOW], true, 'app.string.enable_description_microphone', $r('app.string.forbidden_description_microphone')), - new GroupInfo(PermissionGroup.CONTACTS, $r('app.string.groupName_contacts'), 'app.string.group_label_contacts', $r('app.media.ic_public_contacts_group'), [], '', ['ohos.permission.READ_CONTACTS', 'ohos.permission.WRITE_CONTACTS'], [ButtonStatus.DENY, ButtonStatus.ALLOW], false), - new GroupInfo(PermissionGroup.CALENDAR, $r('app.string.groupName_calendar'), 'app.string.group_label_calendar', $r('app.media.ic_public_calendar'), [], '', ['ohos.permission.READ_CALENDAR', 'ohos.permission.WRITE_CALENDAR', 'ohos.permission.READ_WHOLE_CALENDAR', 'ohos.permission.WRITE_WHOLE_CALENDAR'], [ButtonStatus.DENY, ButtonStatus.ALLOW], true), - new GroupInfo(PermissionGroup.SPORT, $r('app.string.groupName_sport'), 'app.string.group_label_sport', $r('app.media.ic_sport'), [], '', ['ohos.permission.ACTIVITY_MOTION'], [ButtonStatus.DENY, ButtonStatus.ALLOW], true, 'app.string.enable_description_sport', $r('app.string.forbidden_description_sport')), - new GroupInfo(PermissionGroup.HEALTH, $r('app.string.groupName_health'), 'app.string.group_label_health', $r('app.media.ic_ssensor'), [], '', ['ohos.permission.READ_HEALTH_DATA'], [ButtonStatus.DENY, ButtonStatus.ALLOW], true, 'app.string.enable_description_health', $r('app.string.forbidden_description_health')), + new GroupInfo(PermissionGroup.LOCATION, $r('app.string.groupName_location'), 'app.string.group_label_location', $r('app.media.ic_public_gps'), [], '', [Permission.LOCATION_IN_BACKGROUND, Permission.APPROXIMATELY_LOCATION, Permission.LOCATION], [ButtonStatus.ALLOW_ONLY_DURING_USE, ButtonStatus.ALLOW_THIS_TIME, ButtonStatus.CANCEL], true, 'app.string.enable_description_location', $r('app.string.forbidden_description_location')), + new GroupInfo(PermissionGroup.CAMERA, $r('app.string.groupName_camera'), 'app.string.group_label_camera', $r('app.media.ic_public_camera'), [], '', [Permission.CAMERA], [ButtonStatus.DENY, ButtonStatus.ALLOW], true, 'app.string.enable_description_camera', $r('app.string.forbidden_description_camera')), + new GroupInfo(PermissionGroup.MICROPHONE, $r('app.string.groupName_microphone'), 'app.string.group_label_microphone', $r('app.media.ic_public_voice'), [], '', [Permission.MICROPHONE], [ButtonStatus.DENY, ButtonStatus.ALLOW], true, 'app.string.enable_description_microphone', $r('app.string.forbidden_description_microphone')), + new GroupInfo(PermissionGroup.CONTACTS, $r('app.string.groupName_contacts'), 'app.string.group_label_contacts', $r('app.media.ic_public_contacts_group'), [], '', [Permission.READ_CONTACTS, Permission.WRITE_CONTACTS], [ButtonStatus.DENY, ButtonStatus.ALLOW], false), + new GroupInfo(PermissionGroup.CALENDAR, $r('app.string.groupName_calendar'), 'app.string.group_label_calendar', $r('app.media.ic_public_calendar'), [], '', [Permission.READ_CALENDAR, Permission.WRITE_CALENDAR, Permission.READ_WHOLE_CALENDAR, Permission.WRITE_WHOLE_CALENDAR], [ButtonStatus.DENY, ButtonStatus.ALLOW], true), + new GroupInfo(PermissionGroup.SPORT, $r('app.string.groupName_sport'), 'app.string.group_label_sport', $r('app.media.ic_sport'), [], '', [Permission.ACTIVITY_MOTION], [ButtonStatus.DENY, ButtonStatus.ALLOW], true, 'app.string.enable_description_sport', $r('app.string.forbidden_description_sport')), + new GroupInfo(PermissionGroup.HEALTH, $r('app.string.groupName_health'), 'app.string.group_label_health', $r('app.media.ic_ssensor'), [], '', [Permission.READ_HEALTH_DATA], [ButtonStatus.DENY, ButtonStatus.ALLOW], true, 'app.string.enable_description_health', $r('app.string.forbidden_description_health')), new GroupInfo(PermissionGroup.OTHER, $r('app.string.groupName_other'), '', $r('app.media.ic_more'), [], '', [], [ButtonStatus.DENY, ButtonStatus.ALLOW], true), - new GroupInfo(PermissionGroup.IMAGE_AND_VIDEOS, $r('sys.string.ohos_lab_read_imagevideo'), 'app.string.group_label_image_and_videos', $r('app.media.ic_public_picture'), [], '', ['ohos.permission.READ_IMAGEVIDEO', 'ohos.permission.WRITE_IMAGEVIDEO', 'ohos.permission.MEDIA_LOCATION'], [ButtonStatus.DENY, ButtonStatus.ALLOW], false, 'app.string.enable_description_image', $r('app.string.forbidden_description_image')), - new GroupInfo(PermissionGroup.AUDIOS, $r('sys.string.ohos_lab_read_audio'), 'app.string.group_label_audios', $r('app.media.ic_public_audio'), [], '', ['ohos.permission.READ_AUDIO', 'ohos.permission.WRITE_AUDIO'], [ButtonStatus.DENY, ButtonStatus.ALLOW], false, 'app.string.enable_description_audios', $r('app.string.forbidden_description_audios')), - new GroupInfo(PermissionGroup.DOCUMENTS, $r('sys.string.ohos_lab_read_document'), 'app.string.group_label_document', $r('app.media.ic_public_folder'), [], '', ['ohos.permission.READ_DOCUMENT', 'ohos.permission.WRITE_DOCUMENT', 'ohos.permission.READ_MEDIA', 'ohos.permission.WRITE_MEDIA'], [ButtonStatus.DENY, ButtonStatus.ALLOW], false, 'app.string.enable_description_documents', $r('app.string.forbidden_description_documents')), - new GroupInfo(PermissionGroup.ADS, $r('app.string.groupName_ADS'), 'app.string.group_label_ADS', $r('app.media.track'), [], '', ['ohos.permission.APP_TRACKING_CONSENT'], [ButtonStatus.DENY, ButtonStatus.ALLOW], false, 'app.string.enable_description_ADS', $r('app.string.forbidden_description_ADS')), - new GroupInfo(PermissionGroup.GET_INSTALLED_BUNDLE_LIST, $r('app.string.groupName_appList'), 'app.string.group_label_appList', $r('app.media.ic_public_app_list'), [], '', ['ohos.permission.GET_INSTALLED_BUNDLE_LIST'], [ButtonStatus.DENY, ButtonStatus.ALLOW], false, 'app.string.enable_description_appList', $r('app.string.forbidden_description_appList')), - new GroupInfo(PermissionGroup.DISTRIBUTED_DATASYNC, $r('app.string.multi_device_collaboration'), 'app.string.group_label_distributed_datasync', $r('app.media.ic_multi_device_vector'), [], '', ['ohos.permission.DISTRIBUTED_DATASYNC'], [ButtonStatus.DENY, ButtonStatus.ALLOW], false, 'app.string.enable_description_distributed_datasync', $r('app.string.forbidden_description_distributed_datasync')), - new GroupInfo(PermissionGroup.BLUETOOTH, $r('app.string.groupName_bluetooth'), 'app.string.group_label_bluetooth', $r('app.media.ic_public_bluetooth'), [], '', ['ohos.permission.ACCESS_BLUETOOTH'], [ButtonStatus.DENY, ButtonStatus.ALLOW], false, 'app.string.enable_description_bluetooth', $r('app.string.forbidden_description_bluetooth')), - new GroupInfo(PermissionGroup.PASTEBOARD, $r('app.string.groupName_pasteboard'), 'app.string.group_label_pasteboard', $r('app.media.ic_clipboard'), [], '', ['ohos.permission.READ_PASTEBOARD'], [ButtonStatus.DENY, ButtonStatus.THIS_TIME_ONLY], false, 'app.string.enable_description_pasteboard', $r('app.string.forbidden_description_pasteboard')), - new GroupInfo(PermissionGroup.FOLDER, $r('app.string.groupName_folder'), 'app.string.group_label_folder', $r('app.media.ic_public_folder'), [], '', ['ohos.permission.READ_WRITE_DOWNLOAD_DIRECTORY', 'ohos.permission.READ_WRITE_DESKTOP_DIRECTORY', 'ohos.permission.READ_WRITE_DOCUMENTS_DIRECTORY'], [ButtonStatus.DENY, ButtonStatus.ALLOW], false, 'app.string.enable_description_folder', $r('app.string.forbidden_description_folder')), - new GroupInfo(PermissionGroup.NEARLINK, $r('app.string.groupName_nearLink'), 'app.string.group_label_nearLink', $r('app.media.ic_nearLink'), [], '', ['ohos.permission.ACCESS_NEARLINK'], [ButtonStatus.DENY, ButtonStatus.ALLOW], false, 'app.string.enable_description_nearLink', $r('app.string.forbidden_description_nearLink')), - new GroupInfo(PermissionGroup.CUSTOM_SCREEN_CAPTURE, $r('app.string.groupName_screenCapture'), 'app.string.group_label_screenCapture', $r('app.media.ic_public_screen_capture'), [], '', ['ohos.permission.CUSTOM_SCREEN_CAPTURE'], [ButtonStatus.DENY, ButtonStatus.ALLOW], false, 'app.string.enable_description_screenCapture', $r('app.string.forbidden_description_screenCapture')) + new GroupInfo(PermissionGroup.IMAGE_AND_VIDEOS, $r('sys.string.ohos_lab_read_imagevideo'), 'app.string.group_label_image_and_videos', $r('app.media.ic_public_picture'), [], '', [Permission.READ_IMAGEVIDEO, Permission.WRITE_IMAGEVIDEO, Permission.MEDIA_LOCATION], [ButtonStatus.DENY, ButtonStatus.ALLOW], false, 'app.string.enable_description_image', $r('app.string.forbidden_description_image')), + new GroupInfo(PermissionGroup.AUDIOS, $r('sys.string.ohos_lab_read_audio'), 'app.string.group_label_audios', $r('app.media.ic_public_audio'), [], '', [Permission.READ_AUDIO, Permission.WRITE_AUDIO], [ButtonStatus.DENY, ButtonStatus.ALLOW], false, 'app.string.enable_description_audios', $r('app.string.forbidden_description_audios')), + new GroupInfo(PermissionGroup.DOCUMENTS, $r('sys.string.ohos_lab_read_document'), 'app.string.group_label_document', $r('app.media.ic_public_folder'), [], '', [Permission.READ_DOCUMENT, Permission.WRITE_DOCUMENT, Permission.READ_MEDIA, Permission.WRITE_MEDIA], [ButtonStatus.DENY, ButtonStatus.ALLOW], false, 'app.string.enable_description_documents', $r('app.string.forbidden_description_documents')), + new GroupInfo(PermissionGroup.ADS, $r('app.string.groupName_ADS'), 'app.string.group_label_ADS', $r('app.media.track'), [], '', [Permission.APP_TRACKING_CONSENT], [ButtonStatus.DENY, ButtonStatus.ALLOW], false, 'app.string.enable_description_ADS', $r('app.string.forbidden_description_ADS')), + new GroupInfo(PermissionGroup.GET_INSTALLED_BUNDLE_LIST, $r('app.string.groupName_appList'), 'app.string.group_label_appList', $r('app.media.ic_public_app_list'), [], '', [Permission.GET_INSTALLED_BUNDLE_LIST], [ButtonStatus.DENY, ButtonStatus.ALLOW], false, 'app.string.enable_description_appList', $r('app.string.forbidden_description_appList')), + new GroupInfo(PermissionGroup.DISTRIBUTED_DATASYNC, $r('app.string.multi_device_collaboration'), 'app.string.group_label_distributed_datasync', $r('app.media.ic_multi_device_vector'), [], '', [Permission.DISTRIBUTED_DATASYNC], [ButtonStatus.DENY, ButtonStatus.ALLOW], false, 'app.string.enable_description_distributed_datasync', $r('app.string.forbidden_description_distributed_datasync')), + new GroupInfo(PermissionGroup.BLUETOOTH, $r('app.string.groupName_bluetooth'), 'app.string.group_label_bluetooth', $r('app.media.ic_public_bluetooth'), [], '', [Permission.ACCESS_BLUETOOTH], [ButtonStatus.DENY, ButtonStatus.ALLOW], false, 'app.string.enable_description_bluetooth', $r('app.string.forbidden_description_bluetooth')), + new GroupInfo(PermissionGroup.PASTEBOARD, $r('app.string.groupName_pasteboard'), 'app.string.group_label_pasteboard', $r('app.media.ic_clipboard'), [], '', [Permission.READ_PASTEBOARD], [ButtonStatus.DENY, ButtonStatus.THIS_TIME_ONLY], false, 'app.string.enable_description_pasteboard', $r('app.string.forbidden_description_pasteboard')), + new GroupInfo(PermissionGroup.FOLDER, $r('app.string.groupName_folder'), 'app.string.group_label_folder', $r('app.media.ic_public_folder'), [], '', [Permission.READ_WRITE_DOWNLOAD_DIRECTORY, Permission.READ_WRITE_DESKTOP_DIRECTORY, Permission.READ_WRITE_DOCUMENTS_DIRECTORY], [ButtonStatus.DENY, ButtonStatus.ALLOW], false, 'app.string.enable_description_folder', $r('app.string.forbidden_description_folder')), + new GroupInfo(PermissionGroup.NEARLINK, $r('app.string.groupName_nearLink'), 'app.string.group_label_nearLink', $r('app.media.ic_nearLink'), [], '', [Permission.ACCESS_NEARLINK], [ButtonStatus.DENY, ButtonStatus.ALLOW], false, 'app.string.enable_description_nearLink', $r('app.string.forbidden_description_nearLink')), + new GroupInfo(PermissionGroup.CUSTOM_SCREEN_CAPTURE, $r('app.string.groupName_screenCapture'), 'app.string.group_label_screenCapture', $r('app.media.ic_public_screen_capture'), [], '', [Permission.CUSTOM_SCREEN_CAPTURE], [ButtonStatus.DENY, ButtonStatus.ALLOW], false, 'app.string.enable_description_screenCapture', $r('app.string.forbidden_description_screenCapture')) ]; export const userGrantPermissions: string[] = [ diff --git a/permissionmanager/src/main/ets/common/model/typedef.ets b/permissionmanager/src/main/ets/common/model/typedef.ets index f93aea78cfbbed92a2650d1fbec535e48d65c858..39e9837923ac7c84b50a4ab21958252ec42483e3 100644 --- a/permissionmanager/src/main/ets/common/model/typedef.ets +++ b/permissionmanager/src/main/ets/common/model/typedef.ets @@ -13,7 +13,7 @@ * limitations under the License. */ import { Permissions } from '@ohos.abilityAccessCtrl'; -import { ButtonStatus } from './definition'; +import { ButtonStatus, Permission } from './definition'; export class AppInfo { public bundleName: string @@ -25,7 +25,7 @@ export class AppInfo { public label: string public labelId: number public labelResource: Resource - public permissions: Permissions[] + public permissions: Permission[] public groupId: number[] public zhTag: string public indexTag: string @@ -41,7 +41,7 @@ export class AppInfo { label: string, labelId: number, labelResource: Resource, - permissions: Permissions[], + permissions: Permission[], groupId: number[], zhTag: string, indexTag: string, @@ -65,12 +65,12 @@ export class AppInfo { }; export class PermissionApplications { - public permission: Permissions + public permission: Permission public groupName: string public bundleNames: string[] public icon: ResourceStr - constructor(permission: Permissions, groupName: string, bundleNames: string[], icon: ResourceStr) { + constructor(permission: Permission, groupName: string, bundleNames: string[], icon: ResourceStr) { this.permission = permission this.groupName = groupName this.bundleNames = bundleNames @@ -129,12 +129,12 @@ export class ApplicationObj { } export class CalendarObj { - public permissionName: string + public permissionName: Permission public groupName: string public label: ResourceStr public index: number - constructor(permissionName: string, groupName: string, label: ResourceStr, index: number) { + constructor(permissionName: Permission, groupName: string, label: ResourceStr, index: number) { this.permissionName = permissionName this.groupName = groupName this.label = label @@ -226,7 +226,7 @@ export class OtherPermission { } export class PermissionInfo { - public permissionName: string + public permissionName: Permission public groupName: string public label: ResourceStr public groupId: number @@ -234,7 +234,7 @@ export class PermissionInfo { public forbiddenDescription?: ResourceStr constructor( - permissionName: string, + permissionName: Permission, groupName: string, label: ResourceStr, groupId: number, @@ -257,7 +257,7 @@ export class GroupInfo { public icon: ResourceStr public description: Array public reason: string - public permissions: Array + public permissions: Array public buttons: Array public isShow: boolean public enableDescription?: string @@ -270,7 +270,7 @@ export class GroupInfo { icon: ResourceStr, description: Array, reason: string, - permissions: Array, + permissions: Array, buttons: Array, isShow: boolean, enableDescription?: string, @@ -396,9 +396,9 @@ export class RouterParams1 { export class RouterParams2 { public list: PermissionApplications[] public backTitle: ResourceStr - public permissionName: string + public permissionName: Permission - constructor(list: PermissionApplications[], backTitle: ResourceStr, permissionName: string) { + constructor(list: PermissionApplications[], backTitle: ResourceStr, permissionName: Permission) { this.list = list this.backTitle = backTitle this.permissionName = permissionName @@ -408,11 +408,11 @@ export class RouterParams2 { export class RouterParams3 { public bundleName: string public backTitle: ResourceStr - public permission: Permissions[] + public permission: Permission[] public status: number public tokenId: number - constructor(bundleName: string, backTitle: ResourceStr, permission: Permissions[], status: number, tokenId: number) { + constructor(bundleName: string, backTitle: ResourceStr, permission: Permission[], status: number, tokenId: number) { this.bundleName = bundleName this.backTitle = backTitle this.permission = permission diff --git a/permissionmanager/src/main/ets/common/utils/utils.ets b/permissionmanager/src/main/ets/common/utils/utils.ets index 5ebbb13b17e9f947a10d6e6140ed511c90511f9c..539751a907f37ed25135a3ae3b1708e9d0ffed4c 100644 --- a/permissionmanager/src/main/ets/common/utils/utils.ets +++ b/permissionmanager/src/main/ets/common/utils/utils.ets @@ -16,11 +16,12 @@ import abilityAccessCtrl, { Permissions } from '@ohos.abilityAccessCtrl'; import i18n from '@ohos.i18n'; import hilog from '@ohos.hilog'; -import { permissionGroups, groups } from '../model/permissionGroup'; +import { permissionInfos, groups } from '../model/permissionGroup'; +import { Permission } from '../model/definition'; import Constants from '../utils/constant'; import { BundleInfoUtils } from './bundleInfoUtils'; import { CommonUtils } from './commonUtils'; -import { GroupInfo, AppInfo, ApplicationObj, PermissionInfo } from '../model/typedef'; +import { GroupInfo, AppInfo, ApplicationObj } from '../model/typedef'; import systemParameterEnhance from '@ohos.systemParameterEnhance'; import UIExtensionContentSession from '@ohos.app.ability.UIExtensionContentSession'; import uiExtensionHost from '@ohos.uiExtensionHost'; @@ -164,13 +165,12 @@ export function sortByName(appArray: Array): Array, session: UIEx } // check if the permissions provided are in the same group -export function checkPermissionGroup(appPermissions: Permissions[]): string | null { +export function checkPermissionGroup(appPermissions: Permission[]): string | null { if (appPermissions.length == 0) { return null; } let groupName = '' // index of group in permissionGroup // check if permission is a valid permission for (const permission of appPermissions) { - let idx = permissionGroups.findIndex( - (item) => {return item.permissionName === permission} - ); + let permissionInfo = permissionInfos.get(permission); // if permission not found in known permissions , return false - if (idx == -1) { + if (!permissionInfo) { Log.error(TAG + 'unknown info ' + permission) return null; } // if groupName not set , set groupName if (groupName == '') { - groupName = permissionGroups[idx].groupName; + groupName = permissionInfo.groupName; } // if current groupName is not the same to the previous , not the same group - if (permissionGroups[idx].groupName != groupName) { + if (permissionInfo.groupName != groupName) { Log.error(TAG + 'permission ' + permission + ' is not in current group ' + groupName) return null } diff --git a/permissionmanager/src/main/ets/pages/application-secondary.ets b/permissionmanager/src/main/ets/pages/application-secondary.ets index ceb8f3929c2bb8bcdb35038861aca6975f302573..96833412b367fb2241c5e57729038d4f424f422e 100644 --- a/permissionmanager/src/main/ets/pages/application-secondary.ets +++ b/permissionmanager/src/main/ets/pages/application-secondary.ets @@ -38,7 +38,7 @@ struct appNamePlusPage { @State isTouch: string = ''; @State isGranted: number = Constants.PERMISSION_ALLOW; @State folderStatus: boolean[] = [false, false, false]; - @State reqUserPermissions: Permissions[] = []; + @State reqUserPermissions: Permission[] = []; @Builder ListItemLayout(item: PermissionObj, status: number) { ListItem() { @@ -103,7 +103,7 @@ struct appNamePlusPage { let acManager = abilityAccessCtrl.createAtManager(); if (info.permissions.length > 0) { for (let j = 0; j < info.permissions.length; j++) { - let permission = info.permissions[j]; + let permission = info.permissions[j] as Permission; if (userGrantPermissions.indexOf(permission) == -1) { continue; } diff --git a/permissionmanager/src/main/ets/pages/application-tertiary.ets b/permissionmanager/src/main/ets/pages/application-tertiary.ets index 1321c337102c8fe0e706538685a4becf5564c2fd..3738f9f8688177cba9dd6fc20171f6ef3db8b736 100644 --- a/permissionmanager/src/main/ets/pages/application-tertiary.ets +++ b/permissionmanager/src/main/ets/pages/application-tertiary.ets @@ -160,7 +160,7 @@ struct mediaDocumentItem { private context = getContext(this) as common.UIAbilityContext; private backTitle: ResourceStr = (router.getParams() as RouterParams3).backTitle; private bundleName: string = (router.getParams() as RouterParams3).bundleName; - private permissions: Permissions[] = (router.getParams() as RouterParams3).permission; + private permissions: Permission[] = (router.getParams() as RouterParams3).permission; private status: number = (router.getParams() as RouterParams3).status; @State currentGroup: string = GlobalContext.load('currentPermissionGroup'); @State applicationInfo: AppInfo = GlobalContext.load('applicationInfo'); diff --git a/permissionmanager/src/main/ets/pages/authority-management.ets b/permissionmanager/src/main/ets/pages/authority-management.ets index d092b90299261d1eced0244dbdd0145b09e36661..f5d799511154c56c16d92ff816802c9da3c58afb 100644 --- a/permissionmanager/src/main/ets/pages/authority-management.ets +++ b/permissionmanager/src/main/ets/pages/authority-management.ets @@ -22,8 +22,16 @@ import audio from '@ohos.multimedia.audio' import camera from '@ohos.multimedia.camera' import display from '@ohos.display'; import common from '@ohos.app.ability.common'; -import { groups, userGrantPermissions, globalGroup, permissionGroups, showSubPermissionsGroup } from '../common/model/permissionGroup'; -import { Log, indexValue, getPermissionGroupByName, getGroupIdByPermission, addLocalTag, sortByName } from '../common/utils/utils'; +import { groups, userGrantPermissions, globalGroup, showSubPermissionsGroup } from '../common/model/permissionGroup'; +import { + Log, + indexValue, + addLocalTag, + sortByName, + getPermissionGroup, + getGroupIdByPermission, + getPermissionGroupByName +} from '../common/utils/utils'; import { AppInfo, PermissionApplications, GroupPermission, GroupInfo } from '../common/model/typedef'; import { GlobalContext } from '../common/utils/globalContext'; import { Permission } from '../common/model/definition'; @@ -138,7 +146,7 @@ struct authorityManagementPage { @LocalStorageLink('initialGroups') initialGroups: bundleManager.BundleInfo[] = []; @State allPermissionApplications: PermissionApplications [] = []; // All app permissions @State allGroupPermission: GroupPermission[] = []; // All group permissions - @State allUserPermissions: Permissions[] = []; + @State allUserPermissions: Permission[] = []; @State allBundleInfo: AppInfo[] = []; @State allGroups: string[] = []; @State currentIndex: number = 0; @@ -187,20 +195,6 @@ struct authorityManagementPage { GlobalContext.store('allBundleInfo', this.allBundleInfo); } - /** - * Get the corresponding permission group id according to the permission - * @param {String} permission app name id - * @return {Number} groupId - */ - getPermissionGroupByPermission(permission: string): GroupInfo { - for (let i = 0; i < permissionGroups.length; i++) { - if (permissionGroups[i].permissionName == permission) { - return groups[permissionGroups[i].groupId]; - } - } - return groups[0]; - } - /** * Get all permission label */ @@ -216,8 +210,8 @@ struct authorityManagementPage { */ getAllPermissionApplications() { for (let i = 0; i < this.allUserPermissions.length; i++) { - let permission: Permissions = this.allUserPermissions[i]; - let permissionGroup: GroupInfo = this.getPermissionGroupByPermission(permission); + let permission: Permission = this.allUserPermissions[i]; + let permissionGroup: GroupInfo = getPermissionGroup(permission); let icon: ResourceStr = permissionGroup.icon; let bundleNames: string[] = []; for (let j = 0; j < this.allBundleInfo.length; j++) { @@ -239,8 +233,8 @@ struct authorityManagementPage { this.allGroups.push(item.name); } }) - this.allUserPermissions.forEach((userPermission: Permissions) => { - let groupId = getGroupIdByPermission(userPermission) + this.allUserPermissions.forEach((userPermission: Permission) => { + let groupId = getGroupIdByPermission(userPermission); if (this.allGroups.indexOf(groups[groupId].name) == -1) { this.allGroups.push(groups[groupId].name); } @@ -261,12 +255,12 @@ struct authorityManagementPage { */ async deduplicationPermissions(info: bundleManager.BundleInfo) { Log.info('allBundleInfo start: ' + info.name); - let reqPermissions: Permissions[] = []; + let reqPermissions: Permission[] = []; info.reqPermissionDetails.forEach(item => { - reqPermissions.push(item.name as Permissions); + reqPermissions.push(item.name as Permission); }) let reqPermissionsLen = reqPermissions.length; - let reqUserPermissions: Permissions[] = []; + let reqUserPermissions: Permission[] = []; let acManager = abilityAccessCtrl.createAtManager() if (reqPermissionsLen > 0) { for (let j = 0; j < reqPermissions.length; j++) { @@ -293,7 +287,7 @@ struct authorityManagementPage { this.getAllBundleInfo(info, reqUserPermissions); } - getAllBundleInfo(info: bundleManager.BundleInfo, reqUserPermissions: Permissions[]) { + getAllBundleInfo(info: bundleManager.BundleInfo, reqUserPermissions: Permission[]) { let groupIds: number[] = []; for (let i = 0; i < reqUserPermissions.length; i++) { let groupId = getGroupIdByPermission(reqUserPermissions[i]) diff --git a/permissionmanager/src/main/ets/pages/authority-secondary.ets b/permissionmanager/src/main/ets/pages/authority-secondary.ets index d7741a49cce651779a48a3f546e434456f5a5a2f..1d7e1f1c45b4fac22fd2ec56b36c26f5f38b4979 100644 --- a/permissionmanager/src/main/ets/pages/authority-secondary.ets +++ b/permissionmanager/src/main/ets/pages/authority-secondary.ets @@ -14,7 +14,7 @@ */ import { backBar } from '../common/components/backBar'; -import { permissionGroups, groups } from '../common/model/permissionGroup'; +import { permissionInfos, groups } from '../common/model/permissionGroup'; import router from '@ohos.router'; import Constants from '../common/utils/constant'; import { CalendarObj, RouterParams1, PermissionApplications } from '../common/model/typedef'; @@ -126,13 +126,13 @@ struct appNameItem { return; } for (let i = 0; i < permissionsList[0].permissions.length; i++) { - permissionGroups.forEach((item) => { - if (item.permissionName === permissionsList[0].permissions[i]) { - this.calendarListItem.push( - new CalendarObj(item.permissionName, item.groupName, item.label, i) - ) - } - }) + let permissionInfo = permissionInfos.get(permissionsList[0].permissions[i]); + if (!permissionInfo) { + continue; + } + this.calendarListItem.push( + new CalendarObj(permissionInfo.permissionName, permissionInfo.groupName, permissionInfo.label, i) + ); } } diff --git a/permissionmanager/src/main/ets/pages/authority-tertiary.ets b/permissionmanager/src/main/ets/pages/authority-tertiary.ets index 7720de992b11119012cd6bad7084dbb603d1e446..79b6b6c3dd0960bcf4fd21de0697aed4752100d9 100644 --- a/permissionmanager/src/main/ets/pages/authority-tertiary.ets +++ b/permissionmanager/src/main/ets/pages/authority-tertiary.ets @@ -29,7 +29,8 @@ import { } from '../common/model/typedef'; import { GlobalContext } from '../common/utils/globalContext'; import Constants from '../common/utils/constant'; -import { permissionGroups } from '../common/model/permissionGroup'; +import { permissionInfos } from '../common/model/permissionGroup'; +import { Permission } from '../common/model/definition'; @Extend(Image)function customizeImage(width: number, height: number) { .objectFit(ImageFit.Contain) @@ -74,7 +75,7 @@ struct locationInfoPage { @Component struct applicationItem { private list: PermissionApplications[] = (router.getParams() as RouterParams2).list; - private permissionName: string = (router.getParams() as RouterParams2).permissionName; + private permissionName: Permission = (router.getParams() as RouterParams2).permissionName; @State permissionNum: number = Constants.PERMISSION_NUM; // permission num @State toggleIsOn: boolean[] = []; // toggle switch state array @State isRisk: boolean[] = []; @@ -82,7 +83,7 @@ struct applicationItem { @State applicationList: ApplicationObj[] = []; // application info array @State searchResult: boolean = true; // search results @State selectedIndex: number = 0; - @State permissionInfo: PermissionInfo = new PermissionInfo('', '', '', 0); + @State permissionInfo: PermissionInfo | undefined = undefined; @State allBundleInfo: AppInfo[] = GlobalContext.load('allBundleInfo'); scroller: Scroller = new Scroller(); @@ -186,11 +187,7 @@ struct applicationItem { */ aboutToAppear() { let bundleNames = this.list.length > 0 ? this.list[0].bundleNames : this.list; - permissionGroups.forEach(permission => { - if (permission.permissionName === this.permissionName) { - this.permissionInfo = permission; - } - }) + this.permissionInfo = permissionInfos.get(this.permissionName); let atManager = abilityAccessCtrl.createAtManager(); for (let i = 0; i < bundleNames.length; i++) { @@ -250,7 +247,7 @@ struct applicationItem { Flex({ justifyContent: FlexAlign.Start }) { if (this.permissionNum > 0) { Text( - this.permissionInfo.enableDescription ? + this.permissionInfo?.enableDescription ? $r(this.permissionInfo.enableDescription, String(this.permissionNum)) : '' ) @@ -258,7 +255,7 @@ struct applicationItem { .fontColor($r('sys.color.font_secondary')) .margin({ top: Constants.AUTHORITY_TEXT_MARGIN_TOP }) } else { - Text(this.permissionInfo.forbiddenDescription) + Text(this.permissionInfo?.forbiddenDescription) .fontSize(Constants.TEXT_SMALL_FONT_SIZE) .fontColor($r('sys.color.font_secondary')) .margin({ top: Constants.AUTHORITY_TEXT_MARGIN_TOP }) diff --git a/permissionmanager/src/main/ets/pages/dialogPlus.ets b/permissionmanager/src/main/ets/pages/dialogPlus.ets index 03d55ab6965e496daf0632092b5fce1bcbea9950..f3d465fc0ca011b154400c77e147d2b01a8566c2 100644 --- a/permissionmanager/src/main/ets/pages/dialogPlus.ets +++ b/permissionmanager/src/main/ets/pages/dialogPlus.ets @@ -64,7 +64,7 @@ struct dialogPlusPage { @State result: Array = []; @State accessTokenId: number = 0; @State initStatus: number = Constants.INIT_NEED_TO_WAIT; - @State reqPerms: Array = []; + @State reqPerms: Array = []; @State grantGroups: Array = []; @State userFixedFlag: number = 2; // means user fixed @State grantStatus: number = -1; @@ -459,7 +459,7 @@ struct dialogPlusPage { } } - addGroup(permission: string) { + addGroup(permission: Permission) { let group = getPermissionGroup(permission); if (group.name === 'FOLDER') { switch (permission) { diff --git a/permissionmanager/src/main/ets/pages/other-permissions.ets b/permissionmanager/src/main/ets/pages/other-permissions.ets index a778e9dcfd8b20431f61e944816e712e886120c4..32355444ad84f1a5942ec69df4ecefbd9eb62aec 100644 --- a/permissionmanager/src/main/ets/pages/other-permissions.ets +++ b/permissionmanager/src/main/ets/pages/other-permissions.ets @@ -16,18 +16,22 @@ import { backBar } from '../common/components/backBar'; import router from '@ohos.router'; import Constants from '../common/utils/constant'; -import { permissionGroups } from '../common/model/permissionGroup'; +import { permissionInfos } from '../common/model/permissionGroup'; import { Log, verifyAccessToken } from '../common/utils/utils'; import { OtherPermission, RouterParams3 } from '../common/model/typedef'; -import { Permissions } from '@ohos.abilityAccessCtrl'; +import { Permission } from '../common/model/definition'; import { BusinessError } from '@kit.BasicServicesKit'; let status: number = (router.getParams() as RouterParams3).status; // Status: Allowed, Forbidden -let permissions: Permissions[] = (router.getParams() as RouterParams3).permission; // permissions name +let permissions: Permission[] = (router.getParams() as RouterParams3).permission; // permissions name let otherPermissionList: OtherPermission[] = []; // otherPermission List for (let i = 0; i < permissions.length; i++) { + let permissionInfo = permissionInfos.get(permissions[i]); + if (!permissionInfo) { + continue; + } otherPermissionList.push( - new OtherPermission(permissionGroups.filter(item => item.permissionName == permissions[i])[0].label, permissions[i]) + new OtherPermission(permissionInfo.label, permissions[i]) ); } diff --git a/permissionmanager/src/main/ets/pages/permission-access-record.ets b/permissionmanager/src/main/ets/pages/permission-access-record.ets index 713b8da1c4bea5b5f3ff149bf90cf45b794a2f87..49f2c92e8f8f93f6ceef90e23c19a03e0efd1e9a 100644 --- a/permissionmanager/src/main/ets/pages/permission-access-record.ets +++ b/permissionmanager/src/main/ets/pages/permission-access-record.ets @@ -31,6 +31,7 @@ import { AppGroupRecordInfo } from '../common/model/typedef'; import { GlobalContext } from '../common/utils/globalContext'; +import { Permission } from '../common/model/definition'; @Extend(Image)function customizeImage(width: number, height: number) { .objectFit(ImageFit.Contain) @@ -55,7 +56,7 @@ struct permissionRecordPage { @State show: boolean = false; @State isTouch: string = ''; @State reqUserRecords: privacyManager.PermissionUsedRecord[] = []; - @State reqUserPermissions: string[] = []; + @State reqUserPermissions: Permission[] = []; @State permissionGroups: AppGroupRecordInfo[] = []; @State groupNames: ResourceStr[] = []; @State appLastTime: number = 0; @@ -520,7 +521,7 @@ struct permissionRecordPage { } } - async getReqUserPermissions(reqPermissions: Permissions[], info: bundleManager.BundleInfo) { + async getReqUserPermissions(reqPermissions: Permission[], info: bundleManager.BundleInfo) { let acManager = abilityAccessCtrl.createAtManager(); for (let k = 0; k < reqPermissions.length; k++) { let reqPermission = reqPermissions[k]; @@ -540,7 +541,7 @@ struct permissionRecordPage { getPermissionGroups() { this.reqUserRecords.forEach(reqUserRecord => { - let group = getPermissionGroup(reqUserRecord.permissionName); + let group = getPermissionGroup(reqUserRecord.permissionName as Permission); if (!group) { Log.info('permission not find:' + reqUserRecord.permissionName); } else { @@ -570,7 +571,7 @@ struct permissionRecordPage { bundleManager.getBundleInfo(record.bundleName, bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION | bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_REQUESTED_PERMISSION).then(async (info): Promise => { let appInfo: AppRecordInfo = new AppRecordInfo('', '', '', 0, 0, [], [], [], [], 0); - let reqPermissions: Permissions[] = []; + let reqPermissions: Permission[] = []; let groupIds: number[] = []; this.reqUserPermissions = []; this.reqUserRecords = []; @@ -578,7 +579,7 @@ struct permissionRecordPage { this.groupNames = []; this.appLastTime = 0; info.reqPermissionDetails.forEach(item => { - reqPermissions.push(item.name as Permissions); + reqPermissions.push(item.name as Permission); }); await this.getReqUserRecords(record, info); await this.getReqUserPermissions(reqPermissions, info); @@ -659,7 +660,7 @@ struct permissionRecordPage { } catch (err) { Log.error('getPermissionFlags error: ' + JSON.stringify(err)); } - let group = getPermissionGroup(permissionRecord.permissionName); + let group = getPermissionGroup(permissionRecord.permissionName as Permission); if (group) { let exist = groupArray.find(permissionGroup => permissionGroup.name == group.name); let lastTime = permissionRecord.lastAccessTime; diff --git a/permissionmanager/src/ohosTest/ets/test/GlobalExtAbility.test.ets b/permissionmanager/src/ohosTest/ets/test/GlobalExtAbility.test.ets new file mode 100644 index 0000000000000000000000000000000000000000..7f22e9eec080f5278df00557eb01b06b21d04ee6 --- /dev/null +++ b/permissionmanager/src/ohosTest/ets/test/GlobalExtAbility.test.ets @@ -0,0 +1,81 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium'; +import { Want } from '@kit.AbilityKit'; +import { Log } from '../../../main/ets/common/utils/utils'; +import GlobalExtensionAbility from '../../../main/ets/GlobalExtAbility/GlobalExtAbility'; + +let want1: Want = { + abilityName: '', + parameters: { + 'ohos.sensitive.resource': 'microphone' + } +}; + +let want2: Want = { + abilityName: '', + parameters: { + 'ohos.sensitive.resource': 'camera' + } +}; + +export default function GlobalExtAbilityTest() { + describe('GlobalExtAbilityTest', () => { + // Defines a test suite. Two parameters are supported: test suite name and test suite function. + beforeAll(() => { + // Presets an action, which is performed only once before all test cases of the test suite start. + // This API supports only one parameter: preset action function. + }) + beforeEach(() => { + // Presets an action, which is performed before each unit test case starts. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: preset action function. + }) + afterEach(() => { + // Presets a clear action, which is performed after each unit test case ends. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: clear action function. + }) + afterAll(() => { + // Presets a clear action, which is performed after all test cases of the test suite end. + // This API supports only one parameter: clear action function. + }) + + it('GlobalExtAbilityTest_000', 0, () => { + Log.info(`GlobalExtAbilityTest_000 begin`); + let ability = new GlobalExtensionAbility(); + ability.onCreate(want1); + }) + + it('GlobalExtAbilityTest_001', 0, () => { + Log.info(`GlobalExtAbilityTest_001 begin`); + let ability = new GlobalExtensionAbility(); + ability.onCreate(want2); + }) + + it('GlobalExtAbilityTest_002', 0, () => { + Log.info(`GlobalExtAbilityTest_002 begin`); + let ability = new GlobalExtensionAbility(); + ability.onRequest(want1, 1); + }) + + it('GlobalExtAbilityTest_003', 0, () => { + Log.info(`GlobalExtAbilityTest_003 begin`); + let ability = new GlobalExtensionAbility(); + ability.onDestroy(); + }) + }) +} \ No newline at end of file diff --git a/permissionmanager/src/ohosTest/ets/test/GlobalSwitchSheetAbility.test.ets b/permissionmanager/src/ohosTest/ets/test/GlobalSwitchSheetAbility.test.ets new file mode 100644 index 0000000000000000000000000000000000000000..75c424e2ef4027ba5a4cff77f14805a2769f9c72 --- /dev/null +++ b/permissionmanager/src/ohosTest/ets/test/GlobalSwitchSheetAbility.test.ets @@ -0,0 +1,95 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium'; +import { Want } from '@kit.AbilityKit'; +import { Log } from '../../../main/ets/common/utils/utils'; +import GlobalSwitchSheetAbility from '../../../main/ets/PermissionSheet/GlobalSwitchSheetAbility'; +import AbilityConstant from '@ohos.app.ability.AbilityConstant'; +import UIExtensionContentSession from '@ohos.app.ability.UIExtensionContentSession'; + +let want: Want = { + abilityName: '', + parameters: { + 'ohos.sensitive.resource': 'microphone', + 'ohos.display.id': 0 + } +}; + +export default function GlobalSwitchSheetAbilityTest() { + describe('GlobalSwitchSheetAbilityTest', () => { + // Defines a test suite. Two parameters are supported: test suite name and test suite function. + beforeAll(() => { + // Presets an action, which is performed only once before all test cases of the test suite start. + // This API supports only one parameter: preset action function. + }) + beforeEach(() => { + // Presets an action, which is performed before each unit test case starts. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: preset action function. + }) + afterEach(() => { + // Presets a clear action, which is performed after each unit test case ends. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: clear action function. + }) + afterAll(() => { + // Presets a clear action, which is performed after all test cases of the test suite end. + // This API supports only one parameter: clear action function. + }) + + it('GlobalSwitchSheetAbilityTest_000', 0, () => { + Log.info(`GlobalSwitchSheetAbilityTest_000 begin`); + let ability = new GlobalSwitchSheetAbility(); + let param: AbilityConstant.LaunchParam = { + launchReason: 0, + lastExitReason: 0, + lastExitMessage: '' + }; + ability.onCreate(param); + }) + + it('GlobalSwitchSheetAbilityTest_001', 0, () => { + Log.info(`GlobalSwitchSheetAbilityTest_001 begin`); + let ability = new GlobalSwitchSheetAbility(); + // let session = new UIExtensionContentSession(); + // ability.onSessionCreate(want, session); + }) + + it('GlobalSwitchSheetAbilityTest_002', 0, () => { + Log.info(`GlobalSwitchSheetAbilityTest_002 begin`); + let ability = new GlobalSwitchSheetAbility(); + ability.onForeground(); + }) + + it('GlobalSwitchSheetAbilityTest_003', 0, () => { + Log.info(`GlobalSwitchSheetAbilityTest_003 begin`); + let ability = new GlobalSwitchSheetAbility(); + ability.onBackground(); + }) + + it('GlobalSwitchSheetAbilityTest_004', 0, () => { + Log.info(`GlobalSwitchSheetAbilityTest_004 begin`); + let ability = new GlobalSwitchSheetAbility(); + ability.onSessionDestroy(); + }) + + it('GlobalSwitchSheetAbilityTest_005', 0, () => { + Log.info(`GlobalSwitchSheetAbilityTest_005 begin`); + let ability = new GlobalSwitchSheetAbility(); + ability.onDestroy() + }) + }) +} \ No newline at end of file diff --git a/permissionmanager/src/ohosTest/ets/test/List.test.ets b/permissionmanager/src/ohosTest/ets/test/List.test.ets index a98c00c1d23a80cca37ce7f8d1b0ecf2ec11445e..706e0bebb836bb0f7d72d344af2235a10e169ca4 100644 --- a/permissionmanager/src/ohosTest/ets/test/List.test.ets +++ b/permissionmanager/src/ohosTest/ets/test/List.test.ets @@ -13,10 +13,20 @@ * limitations under the License. */ +import GlobalExtAbilityTest from './GlobalExtAbility.test' +import MainAbilityTest from './MainAbility.test' +import SecurityExtAbilityTest from './SecurityExtAbility.test'; +import ServiceExtAbilityTest from './ServiceExtAbility.test'; +import GlobalSwitchSheetAbilityTest from './GlobalSwitchSheetAbility.test'; +import PermissionStateSheetAbilityTest from './PermissionStateSheetAbility.test' import utilsTest from './utils.test'; -import abilityTest from './Ability.test'; export default function testsuite() { - abilityTest(); + GlobalExtAbilityTest(); + MainAbilityTest(); + SecurityExtAbilityTest(); + ServiceExtAbilityTest(); + GlobalSwitchSheetAbilityTest(); + PermissionStateSheetAbilityTest() utilsTest(); } \ No newline at end of file diff --git a/permissionmanager/src/ohosTest/ets/test/MainAbility.test.ets b/permissionmanager/src/ohosTest/ets/test/MainAbility.test.ets new file mode 100644 index 0000000000000000000000000000000000000000..920e98e6c79c7d85957abcedd4fbbd8cda260425 --- /dev/null +++ b/permissionmanager/src/ohosTest/ets/test/MainAbility.test.ets @@ -0,0 +1,96 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium' +import { Want } from '@kit.AbilityKit'; +import { Log } from '../../../main/ets/common/utils/utils'; +import MainAbility from '../../../main/ets/MainAbility/MainAbility'; +import window from '@ohos.window'; + +let want: Want = { + abilityName: '', + parameters: { + 'ohos.sensitive.resource': 'microphone', + 'ohos.display.id': 0 + } +}; + +// let stage: window.WindowStage = window.createWindow(); + +export default function MainAbilityTest() { + describe('MainAbilityTest', () => { + // Defines a test suite. Two parameters are supported: test suite name and test suite function. + beforeAll(() => { + // Presets an action, which is performed only once before all test cases of the test suite start. + // This API supports only one parameter: preset action function. + }) + beforeEach(() => { + // Presets an action, which is performed before each unit test case starts. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: preset action function. + }) + afterEach(() => { + // Presets a clear action, which is performed after each unit test case ends. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: clear action function. + }) + afterAll(() => { + // Presets a clear action, which is performed after all test cases of the test suite end. + // This API supports only one parameter: clear action function. + }) + + it('MainAbilityTest_000', 0, () => { + Log.info(`MainAbilityTest_000 begin`); + let ability = new MainAbility(); + ability.onCreate(want, null); + }) + + it('MainAbilityTest_001', 0, () => { + Log.info(`MainAbilityTest_001 begin`); + let ability = new MainAbility(); + // ability.onWindowStageCreate(); + }) + + it('MainAbilityTest_002', 0, () => { + Log.info(`MainAbilityTest_002 begin`); + let ability = new MainAbility(); + ability.onNewWant(want); + }) + + it('MainAbilityTest_003', 0, () => { + Log.info(`MainAbilityTest_003 begin`); + let ability = new MainAbility(); + ability.onForeground(); + }) + + it('MainAbilityTest_004', 0, () => { + Log.info(`MainAbilityTest_004 begin`); + let ability = new MainAbility(); + ability.onBackground(); + }) + + it('MainAbilityTest_005', 0, () => { + Log.info(`MainAbilityTest_005 begin`); + let ability = new MainAbility(); + ability.onWindowStageDestroy(); + }) + + it('MainAbilityTest_006', 0, () => { + Log.info(`MainAbilityTest_006 begin`); + let ability = new MainAbility(); + ability.onDestroy(); + }) + }) +} \ No newline at end of file diff --git a/permissionmanager/src/ohosTest/ets/test/PermissionStateSheetAbility.test.ets b/permissionmanager/src/ohosTest/ets/test/PermissionStateSheetAbility.test.ets new file mode 100644 index 0000000000000000000000000000000000000000..1e41950670b952387b6f81ce9c6cf4e52c4c8939 --- /dev/null +++ b/permissionmanager/src/ohosTest/ets/test/PermissionStateSheetAbility.test.ets @@ -0,0 +1,95 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium'; +import { Want } from '@kit.AbilityKit'; +import { Log } from '../../../main/ets/common/utils/utils'; +import PermissionStateSheetAbility from '../../../main/ets/PermissionSheet/PermissionStateSheetAbility'; +import AbilityConstant from '@ohos.app.ability.AbilityConstant'; +import UIExtensionContentSession from '@ohos.app.ability.UIExtensionContentSession'; + +let want: Want = { + abilityName: '', + parameters: { + 'ohos.sensitive.resource': 'microphone', + 'ohos.display.id': 0 + } +}; + +export default function PermissionStateSheetAbilityTest() { + describe('PermissionStateSheetAbilityTest', () => { + // Defines a test suite. Two parameters are supported: test suite name and test suite function. + beforeAll(() => { + // Presets an action, which is performed only once before all test cases of the test suite start. + // This API supports only one parameter: preset action function. + }) + beforeEach(() => { + // Presets an action, which is performed before each unit test case starts. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: preset action function. + }) + afterEach(() => { + // Presets a clear action, which is performed after each unit test case ends. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: clear action function. + }) + afterAll(() => { + // Presets a clear action, which is performed after all test cases of the test suite end. + // This API supports only one parameter: clear action function. + }) + + it('PermissionStateSheetAbilityTest_000', 0, () => { + Log.info(`PermissionStateSheetAbilityTest_000 begin`); + let ability = new PermissionStateSheetAbility(); + let param: AbilityConstant.LaunchParam = { + launchReason: 0, + lastExitReason: 0, + lastExitMessage: '' + }; + ability.onCreate(param); + }) + + it('PermissionStateSheetAbilityTest_001', 0, () => { + Log.info(`PermissionStateSheetAbilityTest_001 begin`); + let ability = new PermissionStateSheetAbility(); + // let session = new UIExtensionContentSession(); + // ability.onSessionCreate(want, session); + }) + + it('PermissionStateSheetAbilityTest_002', 0, () => { + Log.info(`PermissionStateSheetAbilityTest_002 begin`); + let ability = new PermissionStateSheetAbility(); + ability.onForeground(); + }) + + it('PermissionStateSheetAbilityTest_003', 0, () => { + Log.info(`PermissionStateSheetAbilityTest_003 begin`); + let ability = new PermissionStateSheetAbility(); + ability.onBackground(); + }) + + it('PermissionStateSheetAbilityTest_004', 0, () => { + Log.info(`PermissionStateSheetAbilityTest_004 begin`); + let ability = new PermissionStateSheetAbility(); + ability.onSessionDestroy(); + }) + + it('PermissionStateSheetAbilityTest_005', 0, () => { + Log.info(`PermissionStateSheetAbilityTest_005 begin`); + let ability = new PermissionStateSheetAbility(); + ability.onDestroy() + }) + }) +} \ No newline at end of file diff --git a/permissionmanager/src/ohosTest/ets/test/SecurityExtAbility.test.ets b/permissionmanager/src/ohosTest/ets/test/SecurityExtAbility.test.ets new file mode 100644 index 0000000000000000000000000000000000000000..41b619182b2759c59ec481bdc6c9e5decda46d56 --- /dev/null +++ b/permissionmanager/src/ohosTest/ets/test/SecurityExtAbility.test.ets @@ -0,0 +1,80 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium'; +import { Want } from '@kit.AbilityKit'; +import { Configuration } from '@ohos.app.ability.Configuration'; +import { Log } from '../../../main/ets/common/utils/utils'; +import SecurityExtAbility from '../../../main/ets/SecurityExtAbility/SecurityExtAbility'; + +let want: Want = { + abilityName: '', + parameters: { + 'ohos.sensitive.resource': 'microphone', + 'ohos.display.id': 0 + } +}; + +let configuration: Configuration = { + language: '' +} + +export default function SecurityExtAbilityTest() { + describe('SecurityExtAbilityTest', () => { + // Defines a test suite. Two parameters are supported: test suite name and test suite function. + beforeAll(() => { + // Presets an action, which is performed only once before all test cases of the test suite start. + // This API supports only one parameter: preset action function. + }) + beforeEach(() => { + // Presets an action, which is performed before each unit test case starts. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: preset action function. + }) + afterEach(() => { + // Presets a clear action, which is performed after each unit test case ends. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: clear action function. + }) + afterAll(() => { + // Presets a clear action, which is performed after all test cases of the test suite end. + // This API supports only one parameter: clear action function. + }) + + it('SecurityExtAbilityTest_000', 0, () => { + Log.info(`SecurityExtAbilityTest_000 begin`); + let ability = new SecurityExtAbility(); + ability.onCreate(want); + }) + + it('SecurityExtAbilityTest_001', 0, () => { + Log.info(`SecurityExtAbilityTest_001 begin`); + let ability = new SecurityExtAbility(); + ability.onRequest(want, 1); + }) + + it('SecurityExtAbilityTest_002', 0, () => { + Log.info(`SecurityExtAbilityTest_002 begin`); + let ability = new SecurityExtAbility(); + ability.onConfigurationUpdate(configuration); + }) + + it('SecurityExtAbilityTest_003', 0, () => { + Log.info(`SecurityExtAbilityTest_003 begin`); + let ability = new SecurityExtAbility(); + ability.onDestroy(); + }) + }) +} \ No newline at end of file diff --git a/permissionmanager/src/ohosTest/ets/test/Ability.test.ets b/permissionmanager/src/ohosTest/ets/test/ServiceExtAbility.test.ets similarity index 63% rename from permissionmanager/src/ohosTest/ets/test/Ability.test.ets rename to permissionmanager/src/ohosTest/ets/test/ServiceExtAbility.test.ets index a8ff110e5899c2d1727217919dd5badeacdfe061..e8fe9fa88e99419d301fe28c62a29497ada62ebf 100644 --- a/permissionmanager/src/ohosTest/ets/test/Ability.test.ets +++ b/permissionmanager/src/ohosTest/ets/test/ServiceExtAbility.test.ets @@ -13,11 +13,22 @@ * limitations under the License. */ -import { hilog } from '@kit.PerformanceAnalysisKit'; import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium'; +import { Want } from '@kit.AbilityKit'; +import { Configuration } from '@ohos.app.ability.Configuration'; +import { Log } from '../../../main/ets/common/utils/utils'; +import ServiceExtAbility from '../../../main/ets/ServiceExtAbility/ServiceExtAbility'; -export default function abilityTest() { - describe('ActsAbilityTest', () => { +let want: Want = { + abilityName: '', + parameters: { + 'ohos.sensitive.resource': 'microphone', + 'ohos.display.id': 0 + } +}; + +export default function ServiceExtAbilityTest() { + describe('ServiceExtAbilityTest', () => { // Defines a test suite. Two parameters are supported: test suite name and test suite function. beforeAll(() => { // Presets an action, which is performed only once before all test cases of the test suite start. @@ -37,14 +48,23 @@ export default function abilityTest() { // Presets a clear action, which is performed after all test cases of the test suite end. // This API supports only one parameter: clear action function. }) - it('assertContain', 0, () => { - // Defines a test case. This API supports three parameters: test case name, filter parameter, and test case function. - hilog.info(0x0000, 'testTag', '%{public}s', 'it begin'); - let a = 'abc'; - let b = 'b'; - // Defines a variety of assertion methods, which are used to declare expected boolean conditions. - expect(a).assertContain(b); - expect(a).assertEqual(a); + + it('ServiceExtAbilityTest_000', 0, () => { + Log.info(`ServiceExtAbilityTest_000 begin`); + let ability = new ServiceExtAbility(); + ability.onCreate(want); + }) + + it('ServiceExtAbilityTest_001', 0, () => { + Log.info(`ServiceExtAbilityTest_001 begin`); + let ability = new ServiceExtAbility(); + ability.onRequest(want, 1); + }) + + it('ServiceExtAbilityTest_002', 0, () => { + Log.info(`ServiceExtAbilityTest_002 begin`); + let ability = new ServiceExtAbility(); + ability.onDestroy(); }) }) } \ No newline at end of file diff --git a/permissionmanager/src/ohosTest/ets/test/utils.test.ets b/permissionmanager/src/ohosTest/ets/test/utils.test.ets index 4efc9acf639c9e1ab98368d6481c8d896f6a657a..bd376f2d2f844376e19d984f2f0e8291454b1c93 100644 --- a/permissionmanager/src/ohosTest/ets/test/utils.test.ets +++ b/permissionmanager/src/ohosTest/ets/test/utils.test.ets @@ -14,7 +14,22 @@ */ import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect, TestType } from '@ohos/hypium'; -import { Log, getGroupIdByPermission } from '../../../main/ets/common/utils/utils'; +import { AppInfo } from '../../../main/ets/common/model/typedef'; +import { Permission } from '../../../main/ets/common/model/definition'; +import Constants from '../../../main/ets/common/utils/constant'; +import { + Log, + verifyAccessToken, + titleTrim, + addLocalTag, + getPermissionLabel, + getPermissionGroup, + getPermissionGroupByName, + getGroupIdByPermission, + checkPermissionGroup, + getFontSizeScale +} from '../../../main/ets/common/utils/utils'; +import { abilityAccessCtrl, bundleManager } from '@kit.AbilityKit'; export default function utilsTest() { describe('utilsTest', () => { @@ -37,11 +52,95 @@ export default function utilsTest() { // Presets a clear action, which is performed after all test cases of the test suite end. // This API supports only one parameter: clear action function. }) - it('UtilsTest_000', TestType.FUNCTION, () => { + + it('UtilsTest_000', TestType.FUNCTION, async () => { Log.info(`UtilsTest_000 begin`); - let testUri = 'ohos.permission.MICROPHONE'; + let flag = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION; + let bundleInfo = bundleManager.getBundleInfoForSelfSync(flag); + let status = await verifyAccessToken(bundleInfo.appInfo.accessTokenId, 'ohos.permission.MICROPHONE'); + expect(status).assertEqual(abilityAccessCtrl.GrantStatus.PERMISSION_DENIED); + }) + + it('UtilsTest_001', TestType.FUNCTION, () => { + Log.info(`UtilsTest_001 begin`); + let testUri = 'testTitle'; + let title = titleTrim(testUri); + expect(title).assertEqual(testUri); + }) + + it('UtilsTest_002', TestType.FUNCTION, async () => { + Log.info(`UtilsTest_002 begin`); + let flag = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION; + let bundleInfo = bundleManager.getBundleInfoForSelfSync(flag); + let reqPermissions: Array = []; + bundleInfo.reqPermissionDetails.forEach(item => { + reqPermissions.push(item.name as Permission); + }); + let info = new AppInfo( + bundleInfo.name, + bundleInfo.targetVersion, + bundleInfo.appInfo.accessTokenId, + '', + bundleInfo.appInfo.iconId, + bundleInfo.appInfo.iconResource, + '', + bundleInfo.appInfo.labelId, + bundleInfo.appInfo.labelResource, + reqPermissions, + [], + '', + '', + '' + ); + addLocalTag(info); + }) + + it('UtilsTest_004', TestType.FUNCTION, () => { + Log.info(`UtilsTest_004 begin`); + let testUri = Permission.MICROPHONE; + let label = getPermissionLabel(testUri); + expect(JSON.stringify(label)).assertEqual(JSON.stringify($r('sys.string.ohos_lab_microphone'))); + }) + + it('UtilsTest_005', TestType.FUNCTION, () => { + Log.info(`UtilsTest_005 begin`); + let testUri = Permission.MICROPHONE; + let groupInfo = getPermissionGroup(testUri); + expect(groupInfo.permissions).assertContain(testUri); + }) + + it('UtilsTest_006', TestType.FUNCTION, () => { + Log.info(`UtilsTest_006 begin`); + let testGroup = 'MICROPHONE'; + let groupInfo = getPermissionGroupByName(testGroup); + expect(groupInfo.name).assertEqual(testGroup); + }) + + it('UtilsTest_007', TestType.FUNCTION, () => { + Log.info(`UtilsTest_007 begin`); + let testUri = Permission.MICROPHONE; let groupId = getGroupIdByPermission(testUri); expect(groupId).assertEqual(2); }) + + it('UtilsTest_010', TestType.FUNCTION, () => { + Log.info(`UtilsTest_010 begin`); + let testUri = [Permission.MICROPHONE]; + let groupName = checkPermissionGroup(testUri); + expect(groupName).assertEqual('MICROPHONE'); + }) + + it('UtilsTest_012', TestType.FUNCTION, () => { + Log.info(`UtilsTest_012 begin`); + let scale = getFontSizeScale(); + expect(scale).assertEqual(false); + }) + + it('UtilsTest_013', TestType.FUNCTION, () => { + Log.info(`UtilsTest_013 begin`); + Log.warn(`UtilsTest_013 begin`); + Log.debug(`UtilsTest_013 begin`); + Log.error(`UtilsTest_013 begin`); + }) }) } \ No newline at end of file