1f7a47986Sopenharmony_ci/* 2f7a47986Sopenharmony_ci * Copyright (c) 2022-2023 Huawei Device Co., Ltd. 3f7a47986Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4f7a47986Sopenharmony_ci * you may not use this file except in compliance with the License. 5f7a47986Sopenharmony_ci * You may obtain a copy of the License at 6f7a47986Sopenharmony_ci * 7f7a47986Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8f7a47986Sopenharmony_ci * 9f7a47986Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10f7a47986Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11f7a47986Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12f7a47986Sopenharmony_ci * See the License for the specific language governing permissions and 13f7a47986Sopenharmony_ci * limitations under the License. 14f7a47986Sopenharmony_ci */ 15f7a47986Sopenharmony_ci 16f7a47986Sopenharmony_ci#ifndef SERVICES_EDM_INCLUDE_EDM_PERMISSION_MANAGER_H 17f7a47986Sopenharmony_ci#define SERVICES_EDM_INCLUDE_EDM_PERMISSION_MANAGER_H 18f7a47986Sopenharmony_ci 19f7a47986Sopenharmony_ci#include <map> 20f7a47986Sopenharmony_ci#include <string> 21f7a47986Sopenharmony_ci#include <vector> 22f7a47986Sopenharmony_ci#include "admin.h" 23f7a47986Sopenharmony_ci#include "edm_permission.h" 24f7a47986Sopenharmony_ci#include "iplugin.h" 25f7a47986Sopenharmony_ci#include "singleton.h" 26f7a47986Sopenharmony_ci 27f7a47986Sopenharmony_cinamespace OHOS { 28f7a47986Sopenharmony_cinamespace EDM { 29f7a47986Sopenharmony_cistruct AdminPermission { 30f7a47986Sopenharmony_ci std::string permissionName; 31f7a47986Sopenharmony_ci AdminType adminType; 32f7a47986Sopenharmony_ci AdminPermission(std::string _permissionName, AdminType _adminType) : permissionName(_permissionName), 33f7a47986Sopenharmony_ci adminType(_adminType) {} 34f7a47986Sopenharmony_ci}; 35f7a47986Sopenharmony_ci 36f7a47986Sopenharmony_ciclass PermissionManager : public DelayedSingleton<PermissionManager> { 37f7a47986Sopenharmony_ciDECLARE_DELAYED_SINGLETON(PermissionManager) 38f7a47986Sopenharmony_cipublic: 39f7a47986Sopenharmony_ci ErrCode AddPermission(const std::string &permission, IPlugin::PermissionType permissionType); 40f7a47986Sopenharmony_ci void GetReqPermission(const std::vector<std::string> &permissions, 41f7a47986Sopenharmony_ci std::vector<AdminPermission> &reqPermission); 42f7a47986Sopenharmony_ci void GetReqPermission(const std::vector<std::string> &permissions, 43f7a47986Sopenharmony_ci std::vector<EdmPermission> &reqPermission); 44f7a47986Sopenharmony_ci 45f7a47986Sopenharmony_ciprivate: 46f7a47986Sopenharmony_ci std::map<std::string, AdminPermission> permissions_; 47f7a47986Sopenharmony_ci}; 48f7a47986Sopenharmony_ci} // namespace EDM 49f7a47986Sopenharmony_ci} // namespace OHOS 50f7a47986Sopenharmony_ci 51f7a47986Sopenharmony_ci#endif // SERVICES_EDM_INCLUDE_EDM_PERMISSION_MANAGER_H 52