xref: /openbmc/bmcweb/include/user_monitor.hpp (revision 40e9b92ec19acffb46f83a6e55b18974da5d708e)
1 // SPDX-License-Identifier: Apache-2.0
2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors
3 #pragma once
4 #include "dbus_singleton.hpp"
5 #include "dbus_utility.hpp"
6 #include "persistent_data.hpp"
7 
8 #include <sdbusplus/bus/match.hpp>
9 #include <sdbusplus/message/types.hpp>
10 
11 namespace bmcweb
12 {
13 
14 inline void onUserRemoved(sdbusplus::message_t& msg)
15 {
16     sdbusplus::message::object_path p;
17     msg.read(p);
18     std::string username = p.filename();
19     persistent_data::SessionStore::getInstance().removeSessionsByUsername(
20         username);
21 }
22 
23 inline void registerUserRemovedSignal()
24 {
25     std::string userRemovedMatchStr =
26         sdbusplus::bus::match::rules::interfacesRemoved(
27             "/xyz/openbmc_project/user");
28 
29     static sdbusplus::bus::match_t userRemovedMatch(
30         *crow::connections::systemBus, userRemovedMatchStr, onUserRemoved);
31 }
32 } // namespace bmcweb
33