0a38eb5213eb530d58c172b34d26463ec8bf65e7
[platform/core/security/vist.git] / src / vist / policy / core / api.cpp
1 /*
2  *  Copyright (c) 2019 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  *  Licensed under the Apache License, Version 2.0 (the "License");
5  *  you may not use this file except in compliance with the License.
6  *  You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  *  Unless required by applicable law or agreed to in writing, software
11  *  distributed under the License is distributed on an "AS IS" BASIS,
12  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  *  See the License for the specific language governing permissions and
14  *  limitations under the License
15  */
16
17 #include <vist/policy/api.hpp>
18
19 #include "policy-manager.hpp"
20
21 namespace vist {
22 namespace policy {
23
24 PolicyValue API::Get(const std::string& policy)
25 {
26         return PolicyManager::Instance().get(policy);
27 }
28
29 std::unordered_map<std::string, PolicyValue> API::GetAll()
30 {
31         return PolicyManager::Instance().getAll();
32 }
33
34 void API::Admin::Set(const std::string& policy, const PolicyValue& value)
35 {
36         // TODO(Sangwan): Get admin name from peer PID
37         PolicyManager::Instance().set(policy, value, "admin");
38 }
39
40 void API::Admin::Enroll(const std::string& admin)
41 {
42         PolicyManager::Instance().enroll(admin);
43 }
44
45 void API::Admin::Disenroll(const std::string& admin)
46 {
47         PolicyManager::Instance().disenroll(admin);
48 }
49
50 std::vector<std::string> API::Admin::GetAll()
51 {
52         return PolicyManager::Instance().getAdmins();
53 }
54
55 } // namespace policy
56 } // namespace vist