xref: /openbmc/qemu/include/authz/simple.h (revision 5e6464f9c6756c95d036c4acf7ce557a7eb3a7be)
1fb5c4ebcSDaniel P. Berrangé /*
2fb5c4ebcSDaniel P. Berrangé  * QEMU simple authorization driver
3fb5c4ebcSDaniel P. Berrangé  *
4fb5c4ebcSDaniel P. Berrangé  * Copyright (c) 2018 Red Hat, Inc.
5fb5c4ebcSDaniel P. Berrangé  *
6fb5c4ebcSDaniel P. Berrangé  * This library is free software; you can redistribute it and/or
7fb5c4ebcSDaniel P. Berrangé  * modify it under the terms of the GNU Lesser General Public
8fb5c4ebcSDaniel P. Berrangé  * License as published by the Free Software Foundation; either
9*036a80cdSChetan Pant  * version 2.1 of the License, or (at your option) any later version.
10fb5c4ebcSDaniel P. Berrangé  *
11fb5c4ebcSDaniel P. Berrangé  * This library is distributed in the hope that it will be useful,
12fb5c4ebcSDaniel P. Berrangé  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13fb5c4ebcSDaniel P. Berrangé  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14fb5c4ebcSDaniel P. Berrangé  * Lesser General Public License for more details.
15fb5c4ebcSDaniel P. Berrangé  *
16fb5c4ebcSDaniel P. Berrangé  * You should have received a copy of the GNU Lesser General Public
17fb5c4ebcSDaniel P. Berrangé  * License along with this library; if not, see <http://www.gnu.org/licenses/>.
18fb5c4ebcSDaniel P. Berrangé  *
19fb5c4ebcSDaniel P. Berrangé  */
20fb5c4ebcSDaniel P. Berrangé 
21a8b991b5SMarkus Armbruster #ifndef QAUTHZ_SIMPLE_H
22a8b991b5SMarkus Armbruster #define QAUTHZ_SIMPLE_H
23fb5c4ebcSDaniel P. Berrangé 
24fb5c4ebcSDaniel P. Berrangé #include "authz/base.h"
25db1015e9SEduardo Habkost #include "qom/object.h"
26fb5c4ebcSDaniel P. Berrangé 
27fb5c4ebcSDaniel P. Berrangé #define TYPE_QAUTHZ_SIMPLE "authz-simple"
28fb5c4ebcSDaniel P. Berrangé 
2930b5707cSEduardo Habkost OBJECT_DECLARE_SIMPLE_TYPE(QAuthZSimple,
30c734cd40SEduardo Habkost                            QAUTHZ_SIMPLE)
31fb5c4ebcSDaniel P. Berrangé 
32fb5c4ebcSDaniel P. Berrangé 
33fb5c4ebcSDaniel P. Berrangé 
34fb5c4ebcSDaniel P. Berrangé /**
35fb5c4ebcSDaniel P. Berrangé  * QAuthZSimple:
36fb5c4ebcSDaniel P. Berrangé  *
37fb5c4ebcSDaniel P. Berrangé  * This authorization driver provides a simple mechanism
38fb5c4ebcSDaniel P. Berrangé  * for granting access based on an exact matched username.
39fb5c4ebcSDaniel P. Berrangé  *
40fb5c4ebcSDaniel P. Berrangé  * To create an instance of this class via QMP:
41fb5c4ebcSDaniel P. Berrangé  *
42fb5c4ebcSDaniel P. Berrangé  *  {
43fb5c4ebcSDaniel P. Berrangé  *    "execute": "object-add",
44fb5c4ebcSDaniel P. Berrangé  *    "arguments": {
45fb5c4ebcSDaniel P. Berrangé  *      "qom-type": "authz-simple",
46fb5c4ebcSDaniel P. Berrangé  *      "id": "authz0",
47fb5c4ebcSDaniel P. Berrangé  *      "props": {
48fb5c4ebcSDaniel P. Berrangé  *        "identity": "fred"
49fb5c4ebcSDaniel P. Berrangé  *      }
50fb5c4ebcSDaniel P. Berrangé  *    }
51fb5c4ebcSDaniel P. Berrangé  *  }
52fb5c4ebcSDaniel P. Berrangé  *
53fb5c4ebcSDaniel P. Berrangé  * Or via the command line
54fb5c4ebcSDaniel P. Berrangé  *
55fb5c4ebcSDaniel P. Berrangé  *   -object authz-simple,id=authz0,identity=fred
56fb5c4ebcSDaniel P. Berrangé  *
57fb5c4ebcSDaniel P. Berrangé  */
58fb5c4ebcSDaniel P. Berrangé struct QAuthZSimple {
59fb5c4ebcSDaniel P. Berrangé     QAuthZ parent_obj;
60fb5c4ebcSDaniel P. Berrangé 
61fb5c4ebcSDaniel P. Berrangé     char *identity;
62fb5c4ebcSDaniel P. Berrangé };
63fb5c4ebcSDaniel P. Berrangé 
64fb5c4ebcSDaniel P. Berrangé 
65fb5c4ebcSDaniel P. Berrangé 
66fb5c4ebcSDaniel P. Berrangé 
67fb5c4ebcSDaniel P. Berrangé QAuthZSimple *qauthz_simple_new(const char *id,
68fb5c4ebcSDaniel P. Berrangé                                 const char *identity,
69fb5c4ebcSDaniel P. Berrangé                                 Error **errp);
70fb5c4ebcSDaniel P. Berrangé 
71fb5c4ebcSDaniel P. Berrangé 
72a8b991b5SMarkus Armbruster #endif /* QAUTHZ_SIMPLE_H */
73