diff options
author | Tom Joseph <tomjoseph@in.ibm.com> | 2018-09-14 10:02:20 +0530 |
---|---|---|
committer | Brad Bishop <bradleyb@fuzziesquirrel.com> | 2018-10-04 14:27:10 -0400 |
commit | 536ea32ddc61bc3f5ad34eada5788797e1771832 (patch) | |
tree | 184aa6f39ef50147245bed65254d614403998673 /phosphor-ldap-mapper/ldap_mapper_entry.hpp | |
parent | 3618f443ceae49bbcbfd7d35563c23f876ca5d79 (diff) | |
download | phosphor-user-manager-536ea32ddc61bc3f5ad34eada5788797e1771832.tar.gz phosphor-user-manager-536ea32ddc61bc3f5ad34eada5788797e1771832.zip |
ldap: Add application to configure privilege for LDAP groups
The application implements the xyz.openbmc_project.User.PrivilegeMapper
D-Bus interface to configure privilege levels for LDAP groups. The Create
method is used to create privilege mapping for the LDAP group. D-Bus
object is created for each LDAP group and implements the D-Bus interface
xyz.openbmc_project.User.PrivilegeMapperEntry.
:
Change-Id: I20935229a8a79ce1e52a857672a6a0085cb5ace4
Signed-off-by: Tom Joseph <tomjoseph@in.ibm.com>
Diffstat (limited to 'phosphor-ldap-mapper/ldap_mapper_entry.hpp')
-rw-r--r-- | phosphor-ldap-mapper/ldap_mapper_entry.hpp | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/phosphor-ldap-mapper/ldap_mapper_entry.hpp b/phosphor-ldap-mapper/ldap_mapper_entry.hpp new file mode 100644 index 0000000..689639d --- /dev/null +++ b/phosphor-ldap-mapper/ldap_mapper_entry.hpp @@ -0,0 +1,83 @@ +#pragma once + +#include <sdbusplus/bus.hpp> +#include <sdbusplus/server/object.hpp> +#include <xyz/openbmc_project/User/PrivilegeMapperEntry/server.hpp> +#include <xyz/openbmc_project/Object/Delete/server.hpp> + +namespace phosphor +{ +namespace user +{ + +namespace Base = sdbusplus::xyz::openbmc_project; +using Entry = + sdbusplus::xyz::openbmc_project::User::server::PrivilegeMapperEntry; +using Delete = sdbusplus::xyz::openbmc_project::Object::server::Delete; +using Ifaces = sdbusplus::server::object::object<Entry, Delete>; + +// Forward declaration for LDAPMapperMgr +class LDAPMapperMgr; + +using Id = size_t; + +/** @class LDAPMapperEntry + * + * @brief This D-Bus object represents the privilege level for the LDAP group. + */ +class LDAPMapperEntry : public Ifaces +{ + public: + LDAPMapperEntry() = delete; + ~LDAPMapperEntry() = default; + LDAPMapperEntry(const LDAPMapperEntry &) = delete; + LDAPMapperEntry &operator=(const LDAPMapperEntry &) = delete; + LDAPMapperEntry(LDAPMapperEntry &&) = default; + LDAPMapperEntry &operator=(LDAPMapperEntry &&) = default; + + /** @brief Constructs LDAP privilege mapper entry object. + * + * @param[in] bus - sdbusplus handler + * @param[in] path - D-Bus path + * @param[in] privilege - the privilege for the group + * @param[in] parent - LDAP privilege mapper manager + */ + LDAPMapperEntry(sdbusplus::bus::bus &bus, const char *path, + const std::string &groupName, const std::string &privilege, + LDAPMapperMgr &parent); + + /** @brief Delete privilege mapper entry object + * + * This method deletes the privilege mapper entry. + */ + void delete_(void) override; + + /** @brief Update the group name of the mapper object + * + * @param[in] value - group name + * + * @return On success the updated group name + */ + std::string groupName(std::string value) override; + + /** @brief Update privilege associated with LDAP group + * + * @param[in] value - privilege level + * + * @return On success the updated privilege level + */ + std::string privilege(std::string value) override; + + using sdbusplus::xyz::openbmc_project::User::server::PrivilegeMapperEntry:: + privilege; + + using sdbusplus::xyz::openbmc_project::User::server::PrivilegeMapperEntry:: + groupName; + + private: + Id id; + LDAPMapperMgr &manager; +}; + +} // namespace user +} // namespace phosphor |