blob: ea8a0bc4abde6d4d9ea848ffcea0f61d2d44e7c3 [file] [log] [blame]
Tom Joseph536ea322018-09-14 10:02:20 +05301#pragma once
2
3#include <sdbusplus/bus.hpp>
4#include <sdbusplus/server/object.hpp>
5#include <xyz/openbmc_project/User/PrivilegeMapperEntry/server.hpp>
6#include <xyz/openbmc_project/Object/Delete/server.hpp>
7
8namespace phosphor
9{
10namespace user
11{
12
13namespace Base = sdbusplus::xyz::openbmc_project;
14using Entry =
15 sdbusplus::xyz::openbmc_project::User::server::PrivilegeMapperEntry;
16using Delete = sdbusplus::xyz::openbmc_project::Object::server::Delete;
17using Ifaces = sdbusplus::server::object::object<Entry, Delete>;
18
19// Forward declaration for LDAPMapperMgr
20class LDAPMapperMgr;
21
22using Id = size_t;
23
24/** @class LDAPMapperEntry
25 *
26 * @brief This D-Bus object represents the privilege level for the LDAP group.
27 */
28class LDAPMapperEntry : public Ifaces
29{
30 public:
31 LDAPMapperEntry() = delete;
32 ~LDAPMapperEntry() = default;
33 LDAPMapperEntry(const LDAPMapperEntry &) = delete;
34 LDAPMapperEntry &operator=(const LDAPMapperEntry &) = delete;
35 LDAPMapperEntry(LDAPMapperEntry &&) = default;
36 LDAPMapperEntry &operator=(LDAPMapperEntry &&) = default;
37
38 /** @brief Constructs LDAP privilege mapper entry object.
39 *
40 * @param[in] bus - sdbusplus handler
41 * @param[in] path - D-Bus path
42 * @param[in] privilege - the privilege for the group
43 * @param[in] parent - LDAP privilege mapper manager
44 */
45 LDAPMapperEntry(sdbusplus::bus::bus &bus, const char *path,
46 const std::string &groupName, const std::string &privilege,
47 LDAPMapperMgr &parent);
48
Tom Joseph0b14c472018-09-30 01:42:59 +053049 /** @brief Constructs LDAP privilege mapper entry object
50 *
51 * @param[in] bus - sdbusplus handler
52 * @param[in] path - D-Bus path
53 * @param[in] parent - LDAP privilege mapper manager
54 */
55 LDAPMapperEntry(sdbusplus::bus::bus &bus, const char *path,
56 LDAPMapperMgr &parent);
57
Tom Joseph536ea322018-09-14 10:02:20 +053058 /** @brief Delete privilege mapper entry object
59 *
60 * This method deletes the privilege mapper entry.
61 */
62 void delete_(void) override;
63
64 /** @brief Update the group name of the mapper object
65 *
66 * @param[in] value - group name
67 *
68 * @return On success the updated group name
69 */
70 std::string groupName(std::string value) override;
71
72 /** @brief Update privilege associated with LDAP group
73 *
74 * @param[in] value - privilege level
75 *
76 * @return On success the updated privilege level
77 */
78 std::string privilege(std::string value) override;
79
80 using sdbusplus::xyz::openbmc_project::User::server::PrivilegeMapperEntry::
81 privilege;
82
83 using sdbusplus::xyz::openbmc_project::User::server::PrivilegeMapperEntry::
84 groupName;
85
86 private:
87 Id id;
88 LDAPMapperMgr &manager;
89};
90
91} // namespace user
92} // namespace phosphor