1 /*
2  * Copyright (C) 2021-2022 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 OHOS_WIFI_PERMISSION_HELPER
17 #define OHOS_WIFI_PERMISSION_HELPER
18 
19 #include <string>
20 
21 namespace OHOS {
22 namespace Wifi {
23 enum IsGranted {
24     PERMISSION_DENIED = 0,  /* Not granted */
25     PERMISSION_GRANTED = 1, /* Granted */
26 };
27 class WifiPermissionHelper {
28 public:
29     /**
30      * @Description : Verify Permission.
31      *
32      * @param permissionName - Permission name.[in]
33      * @param pid - Process ID.[in]
34      * @param uid - User ID.[in]
35      * @return int
36      */
37     static int VerifyPermission(const std::string &permissionName, const int &pid, const int &uid, const int &tokenId);
38 
39     /**
40      * @Description : Verify Same Process Permission.
41      *
42      * @param pid - Process ID.[in]
43      * @param uid - User ID.[in]
44      * @return int
45      */
46     static int VerifySameProcessPermission(const int &pid, const int &uid);
47 
48     /**
49      * @Description : Verify Set Wifi Information Permission.
50      *
51      * @param pid - Process ID.[in]
52      * @param uid - User ID.[in]
53      * @return int
54      */
55     static int VerifySetWifiInfoPermission(const int &pid, const int &uid);
56 
57     /**
58      * @Description : Verify Get Wifi Information Permission.
59      *
60      * @param pid - Process ID.[in]
61      * @param uid - User ID.[in]
62      * @return int
63      */
64     static int VerifyGetWifiInfoPermission(const int &pid, const int &uid);
65 
66     /**
67      * @Description : Verify Access Scan Info Permission.
68      *
69      * @param pid - Process ID.[in]
70      * @param uid - User ID.[in]
71      * @return int
72      */
73     static int VerifyGetScanInfosPermission(const int &pid, const int &uid);
74 
75     /**
76      * @Description Verify Get Local Mac Address Permission.
77      *
78      * @param pid - Process ID.[in]
79      * @param uid - User ID.[in]
80      * @return int
81      */
82     static int VerifyGetWifiLocalMacPermission(const int &pid, const int &uid);
83 
84     /**
85      * @Description : Verify Wifi Connection Permission.
86      *
87      * @param pid - Process ID.[in]
88      * @param uid - User ID.[in]
89      * @return int
90      */
91     static int VerifyWifiConnectionPermission(const int &pid, const int &uid);
92 
93     /**
94      * @Description : Verify Set Wifi Config Permission.
95      *
96      * @param pid - Process ID.[in]
97      * @param uid - User ID.[in]
98      * @return int
99      */
100     static int VerifySetWifiConfigPermission(const int &pid, const int &uid);
101 
102     /**
103      * @Description : Verify Get Wifi Config Permission.
104      *
105      * @param pid - Process ID.[in]
106      * @param uid - User ID.[in]
107      * @return int
108      */
109     static int VerifyGetWifiConfigPermission(const int &pid, const int &uid);
110 
111     /**
112      * @Description : Verify location information about nearby P2P devices Permission.
113      *
114      * @param pid - Process ID.[in]
115      * @param uid - User ID.[in]
116      * @return int
117      */
118     static int VerifyGetWifiDirectDevicePermission(const int &pid, const int &uid);
119 
120     /**
121      * @Description : Verify manage wifi hotspot Permission.
122      *
123      * @param pid - Process ID.[in]
124      * @param uid - User ID.[in]
125      * @return int
126      */
127     static int VerifyManageWifiHotspotPermission(const int &pid, const int &uid);
128 
129     /**
130      * @Description : Verify get wifi peers mac Permission.
131      *
132      * @param pid - Process ID.[in]
133      * @param uid - User ID.[in]
134      * @return int
135      */
136     static int VerifyGetWifiPeersMacPermission(const int &pid, const int &uid);
137 
138     /**
139      * @Description : Verify get wifi peers mac Permission.
140      *
141      * @param pid - Process ID.[in]
142      * @param uid - User ID.[in]
143      * @param tokenId - Token ID.[in]
144      * @return int
145      */
146     static int VerifyGetWifiPeersMacPermissionEx(const int &pid, const int &uid, const int &tokenId);
147 
148     /**
149      * @Description : Verify get internal wifi info Permission.
150      *
151      * @param pid - Process ID.[in]
152      * @param uid - User ID.[in]
153      * @return int
154      */
155     static int VerifyGetWifiInfoInternalPermission(const int &pid, const int &uid);
156 
157     /**
158      * @Description : Verify manage wifi hotspot extend permission.
159      *
160      * @param pid - Process ID.[in]
161      * @param uid - User ID.[in]
162      * @return int
163      */
164     static int VerifyManageWifiHotspotExtPermission(const int &pid, const int &uid);
165 };
166 }  // namespace Wifi
167 }  // namespace OHOS
168 #endif