1fd761da7SRatan Gupta #pragma once 2fd761da7SRatan Gupta 3fd761da7SRatan Gupta #include <sdbusplus/bus.hpp> 4fd761da7SRatan Gupta #include <sdbusplus/server/object.hpp> 5fd761da7SRatan Gupta #include <xyz/openbmc_project/Object/Delete/server.hpp> 69638afb9SPatrick Williams #include <xyz/openbmc_project/User/PrivilegeMapperEntry/server.hpp> 7fd761da7SRatan Gupta 8fd761da7SRatan Gupta namespace phosphor 9fd761da7SRatan Gupta { 107b04c352SRatan Gupta namespace ldap 11fd761da7SRatan Gupta { 12fd761da7SRatan Gupta 13fd761da7SRatan Gupta namespace Base = sdbusplus::xyz::openbmc_project; 14fd761da7SRatan Gupta using Entry = 15fd761da7SRatan Gupta sdbusplus::xyz::openbmc_project::User::server::PrivilegeMapperEntry; 16fd761da7SRatan Gupta using Delete = sdbusplus::xyz::openbmc_project::Object::server::Delete; 17b3ef4e1aSPatrick Williams using Interfaces = sdbusplus::server::object_t<Entry, Delete>; 18fd761da7SRatan Gupta 197b04c352SRatan Gupta // Forward declaration for Config 207b04c352SRatan Gupta class Config; 21fd761da7SRatan Gupta 22fd761da7SRatan Gupta using Id = size_t; 23fd761da7SRatan Gupta 24fd761da7SRatan Gupta /** @class LDAPMapperEntry 25fd761da7SRatan Gupta * 26fd761da7SRatan Gupta * @brief This D-Bus object represents the privilege level for the LDAP group. 27fd761da7SRatan Gupta */ 287b04c352SRatan Gupta class LDAPMapperEntry : public Interfaces 29fd761da7SRatan Gupta { 30fd761da7SRatan Gupta public: 31fd761da7SRatan Gupta LDAPMapperEntry() = delete; 32fd761da7SRatan Gupta ~LDAPMapperEntry() = default; 33fd761da7SRatan Gupta LDAPMapperEntry(const LDAPMapperEntry&) = delete; 34fd761da7SRatan Gupta LDAPMapperEntry& operator=(const LDAPMapperEntry&) = delete; 35*f3fb77c0SNan Zhou LDAPMapperEntry(LDAPMapperEntry&&) = delete; 36*f3fb77c0SNan Zhou LDAPMapperEntry& operator=(LDAPMapperEntry&&) = delete; 37fd761da7SRatan Gupta 38fd761da7SRatan Gupta /** @brief Constructs LDAP privilege mapper entry object. 39fd761da7SRatan Gupta * 40fd761da7SRatan Gupta * @param[in] bus - sdbusplus handler 41fd761da7SRatan Gupta * @param[in] path - D-Bus path 42fd761da7SRatan Gupta * @param[in] filePath - serialization directory path 43fd761da7SRatan Gupta * @param[in] groupName - LDAP group name 44fd761da7SRatan Gupta * @param[in] privilege - the privilege for the group 45fd761da7SRatan Gupta * @param[in] parent - LDAP privilege mapper manager 46fd761da7SRatan Gupta */ 47b3ef4e1aSPatrick Williams LDAPMapperEntry(sdbusplus::bus_t& bus, const char* path, 48fd761da7SRatan Gupta const char* filePath, const std::string& groupName, 497b04c352SRatan Gupta const std::string& privilege, Config& parent); 50fd761da7SRatan Gupta 51fd761da7SRatan Gupta /** @brief Constructs LDAP privilege mapper entry object 52fd761da7SRatan Gupta * 53fd761da7SRatan Gupta * @param[in] bus - sdbusplus handler 54fd761da7SRatan Gupta * @param[in] path - D-Bus path 55fd761da7SRatan Gupta * @param[in] filePath - serialization directory path 56fd761da7SRatan Gupta * @param[in] parent - LDAP privilege mapper manager 57fd761da7SRatan Gupta */ 58b3ef4e1aSPatrick Williams LDAPMapperEntry(sdbusplus::bus_t& bus, const char* path, 597b04c352SRatan Gupta const char* filePath, Config& parent); 60fd761da7SRatan Gupta 61fd761da7SRatan Gupta /** @brief Delete privilege mapper entry object 62fd761da7SRatan Gupta * 63fd761da7SRatan Gupta * This method deletes the privilege mapper entry. 64fd761da7SRatan Gupta */ 65fd761da7SRatan Gupta void delete_(void) override; 66fd761da7SRatan Gupta 67fd761da7SRatan Gupta /** @brief Update the group name of the mapper object 68fd761da7SRatan Gupta * 69fd761da7SRatan Gupta * @param[in] value - group name 70fd761da7SRatan Gupta * 71fd761da7SRatan Gupta * @return On success the updated group name 72fd761da7SRatan Gupta */ 73fd761da7SRatan Gupta std::string groupName(std::string value) override; 74fd761da7SRatan Gupta 75fd761da7SRatan Gupta /** @brief Update privilege associated with LDAP group 76fd761da7SRatan Gupta * 77fd761da7SRatan Gupta * @param[in] value - privilege level 78fd761da7SRatan Gupta * 79fd761da7SRatan Gupta * @return On success the updated privilege level 80fd761da7SRatan Gupta */ 81fd761da7SRatan Gupta std::string privilege(std::string value) override; 82fd761da7SRatan Gupta 83fd761da7SRatan Gupta using sdbusplus::xyz::openbmc_project::User::server::PrivilegeMapperEntry:: 84fd761da7SRatan Gupta privilege; 85fd761da7SRatan Gupta 86fd761da7SRatan Gupta using sdbusplus::xyz::openbmc_project::User::server::PrivilegeMapperEntry:: 87fd761da7SRatan Gupta groupName; 88fd761da7SRatan Gupta 89fd761da7SRatan Gupta private: 90fd761da7SRatan Gupta Id id; 917b04c352SRatan Gupta Config& manager; 92fd761da7SRatan Gupta 93fd761da7SRatan Gupta /** @brief serialization directory path */ 94fd761da7SRatan Gupta std::string persistPath; 95fd761da7SRatan Gupta }; 96fd761da7SRatan Gupta 977b04c352SRatan Gupta } // namespace ldap 98fd761da7SRatan Gupta } // namespace phosphor 99