blob: 06f020d0a2e92ca390ea64544f5686f8f7615e49 [file] [log] [blame]
#ifndef THIRD_PARTY_GBMCWEB_INCLUDE_USER_MONITOR_H_
#define THIRD_PARTY_GBMCWEB_INCLUDE_USER_MONITOR_H_
#include <string>
#include "sessions.hpp"
#include "managed_store.hpp"
#include "sdbusplus/bus/match.hpp"
#include "sdbusplus/message.hpp"
#include "sdbusplus/message/native_types.hpp"
#ifdef UNIT_TEST_BUILD
#include "test/g3/mock_managed_store.hpp" // NOLINT
#endif
namespace bmcweb {
inline void onUserRemoved(sdbusplus::message_t& msg) {
sdbusplus::message::object_path p;
msg.read(p);
std::string username = p.filename();
persistent_data::SessionStore::getInstance().removeSessionsByUsername(
username);
}
inline void registerUserRemovedSignal() {
std::string userRemovedMatchStr =
sdbusplus::bus::match::rules::interfacesRemoved(
"/xyz/openbmc_project/user");
static sdbusplus::bus::match_t userRemovedMatch(
*(managedStore::GetManagedObjectStore()
->GetDeprecatedThreadUnsafeSystemBus()),
userRemovedMatchStr, onUserRemoved);
}
} // namespace bmcweb
#endif // THIRD_PARTY_GBMCWEB_INCLUDE_USER_MONITOR_H_