lomiri-location-service ..
An aggregating location service providing positioning and geocoding capabilities to applications.
permission_manager.h
Go to the documentation of this file.
1/*
2 * Copyright © 2012-2013 Canonical Ltd.
3 *
4 * This program is free software: you can redistribute it and/or modify it
5 * under the terms of the GNU Lesser General Public License version 3,
6 * as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * Authored by: Thomas Voß <thomas.voss@canonical.com>
17 */
18#ifndef LOCATION_SERVICE_COM_LOMIRI_LOCATION_SERVICE_PERMISSION_MANAGER_H_
19#define LOCATION_SERVICE_COM_LOMIRI_LOCATION_SERVICE_PERMISSION_MANAGER_H_
20
21#include <memory>
22#include <string>
23
24#include <sys/types.h>
25
26namespace com
27{
28namespace lomiri
29{
30namespace location
31{
32struct Criteria;
33namespace service
34{
37{
39 pid_t pid;
41 uid_t uid;
43 std::string profile;
44};
45
51{
52public:
54 typedef std::shared_ptr<PermissionManager> Ptr;
55
59 enum class Result
60 {
61 granted,
63 };
64
65 virtual ~PermissionManager() = default;
68
76 const Criteria& criteria,
77 const Credentials& credentials) = 0;
78
79protected:
80 PermissionManager() = default;
81};
82}
83}
84}
85}
86#endif // LOCATION_SERVICE_COM_LOMIRI_LOCATION_SERVICE_PERMISSION_MANAGER_H_
The PermissionManager class is an interface to check whether an application is allowed to access the ...
Result
The Result enum summarizes the results of a query for permissions.
@ rejected
The app is not allowed to access the location service.
@ granted
The app is allowed to access the location service.
virtual Result check_permission_for_credentials(const Criteria &criteria, const Credentials &credentials)=0
Checks whether the app with the given credentials is allowed to access the service for the given crit...
PermissionManager(const PermissionManager &)=delete
PermissionManager & operator=(const PermissionManager &)=delete
Definition accuracy.h:24
Summarizes criteria of a client session with respect to functionality and accuracy for position,...
Definition criteria.h:35
std::string profile
The AppArmor profile of the remote peer.
uid_t uid
The user id the remote peer runs under.
pid_t pid
The process id of the remote peer.