1 /*
2 * Copyright 2004-2020 the Pacemaker project contributors
3 *
4 * The version control history for this file may have further details.
5 *
6 * This source code is licensed under the GNU Lesser General Public License
7 * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY.
8 */
9
10 #ifndef PCMK__COMMON_ACL__H
11 # define PCMK__COMMON_ACL__H
12
13 #ifdef __cplusplus
14 extern "C" {
15 #endif
16
17 /**
18 * \file
19 * \brief Low-level API for XML Access Control Lists (ACLs)
20 * \ingroup core
21 */
22
23 # include <libxml/tree.h> // xmlNode
24
25 bool xml_acl_enabled(xmlNode *xml);
26 void xml_acl_disable(xmlNode *xml);
27 bool xml_acl_denied(xmlNode *xml);
28 bool xml_acl_filtered_copy(const char *user, xmlNode* acl_source, xmlNode *xml,
29 xmlNode **result);
30
31 bool pcmk_acl_required(const char *user);
32
33 #ifdef __cplusplus
34 }
35 #endif
36
37 #endif // PCMK__COMMON_ACL__H