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