1 #include "config.h" 2 3 #include "ldap_mapper_entry.hpp" 4 5 #include "ldap_config.hpp" 6 #include "ldap_mapper_serialize.hpp" 7 8 #include <filesystem> 9 10 namespace phosphor 11 { 12 namespace ldap 13 { 14 15 LDAPMapperEntry::LDAPMapperEntry(sdbusplus::bus_t& bus, const char* path, 16 const char* filePath, 17 const std::string& groupName, 18 const std::string& privilege, Config& parent) : 19 Interfaces(bus, path, Interfaces::action::defer_emit), 20 id(std::stol(std::filesystem::path(path).filename())), manager(parent), 21 persistPath(filePath) 22 { 23 Interfaces::privilege(privilege, true); 24 Interfaces::groupName(groupName, true); 25 Interfaces::emit_object_added(); 26 } 27 28 LDAPMapperEntry::LDAPMapperEntry(sdbusplus::bus_t& bus, const char* path, 29 const char* filePath, Config& parent) : 30 Interfaces(bus, path, Interfaces::action::defer_emit), 31 id(std::stol(std::filesystem::path(path).filename())), manager(parent), 32 persistPath(filePath) 33 {} 34 35 void LDAPMapperEntry::delete_(void) 36 { 37 manager.deletePrivilegeMapper(id); 38 } 39 40 std::string LDAPMapperEntry::groupName(std::string value) 41 { 42 if (value == Interfaces::groupName()) 43 { 44 return value; 45 } 46 47 manager.checkPrivilegeMapper(value); 48 auto val = Interfaces::groupName(value); 49 serialize(*this, persistPath); 50 return val; 51 } 52 53 std::string LDAPMapperEntry::privilege(std::string value) 54 { 55 if (value == Interfaces::privilege()) 56 { 57 return value; 58 } 59 60 manager.checkPrivilegeLevel(value); 61 auto val = Interfaces::privilege(value); 62 serialize(*this, persistPath); 63 return val; 64 } 65 66 } // namespace ldap 67 } // namespace phosphor 68