Loading src/admin.cpp +9 −39 Changes for src/admin.cpp: 9 added lines, 39 removed lines. Original line number Diff line number Diff line Loading @@ -1080,50 +1080,20 @@ namespace authdb { json_object *jobj = json_object_new_object(); json_object *jarr = json_object_new_array(); std::set<std::string> seen_sids; // Local in-memory sessions for (const SessionData *curdat = AuthSession.firstData(); curdat; curdat = curdat->next()) { uuid::uuid sdid; curdat->getDid(sdid); if ((strcmp(cdid, "admin") == 0 && sdid.empty()) || (!did.empty() && did == sdid)) { uuid::uuid sid; curdat->getSid(sid); seen_sids.insert(std::string(sid.c_str())); std::vector<SessionInfo> sessions; AuthSession->listSessions(sessions); for (const auto &si : sessions) { if ((strcmp(cdid, "admin") == 0 && si.did.empty()) || (!did.empty() && did == si.did)) { json_object *jsess = json_object_new_object(); json_object_object_add(jsess, "sid", json_object_new_string(sid.c_str())); json_object_object_add(jsess, "did", json_object_new_string(sdid.c_str())); json_object_object_add(jsess, "username", json_object_new_string(curdat->getUsername())); json_object_object_add(jsess, "sid", json_object_new_string(si.sid.c_str())); json_object_object_add(jsess, "did", json_object_new_string(si.did.c_str())); json_object_object_add(jsess, "username", json_object_new_string(si.username.c_str())); json_object_array_add(jarr, jsess); } } // Cluster sessions from all nodes (filtered by domain) if (g_Cluster && g_Cluster->isRunning()) { std::vector<Cluster::SessionInfo> csessions; g_Cluster->listAllSessions(csessions); for (const auto &cs : csessions) { std::string sidstr = cs.sid.c_str(); if (seen_sids.count(sidstr)) continue; if ((strcmp(cdid, "admin") == 0 && cs.did.empty()) || (!did.empty() && did == cs.did)) { seen_sids.insert(sidstr); json_object *jsess = json_object_new_object(); json_object_object_add(jsess, "sid", json_object_new_string(cs.sid.c_str())); json_object_object_add(jsess, "did", json_object_new_string(cs.did.c_str())); json_object_object_add(jsess, "username", json_object_new_string(cs.username.c_str())); json_object_array_add(jarr, jsess); } } } json_object_object_add(jobj, "sessions", jarr); sendJson(curreq, jobj); json_object_put(jobj); Loading @@ -1133,7 +1103,7 @@ namespace authdb { void apiRemoveSession(libhttppp::HttpRequest &curreq, const char *csid) { uuid::uuid sid; sid = csid; AuthSession.remSession(sid); AuthSession->remSession(sid); json_object *jobj = json_object_new_object(); json_object_object_add(jobj, "status", json_object_new_string("ok")); Loading Loading
src/admin.cpp +9 −39 Changes for src/admin.cpp: 9 added lines, 39 removed lines. Original line number Diff line number Diff line Loading @@ -1080,50 +1080,20 @@ namespace authdb { json_object *jobj = json_object_new_object(); json_object *jarr = json_object_new_array(); std::set<std::string> seen_sids; // Local in-memory sessions for (const SessionData *curdat = AuthSession.firstData(); curdat; curdat = curdat->next()) { uuid::uuid sdid; curdat->getDid(sdid); if ((strcmp(cdid, "admin") == 0 && sdid.empty()) || (!did.empty() && did == sdid)) { uuid::uuid sid; curdat->getSid(sid); seen_sids.insert(std::string(sid.c_str())); std::vector<SessionInfo> sessions; AuthSession->listSessions(sessions); for (const auto &si : sessions) { if ((strcmp(cdid, "admin") == 0 && si.did.empty()) || (!did.empty() && did == si.did)) { json_object *jsess = json_object_new_object(); json_object_object_add(jsess, "sid", json_object_new_string(sid.c_str())); json_object_object_add(jsess, "did", json_object_new_string(sdid.c_str())); json_object_object_add(jsess, "username", json_object_new_string(curdat->getUsername())); json_object_object_add(jsess, "sid", json_object_new_string(si.sid.c_str())); json_object_object_add(jsess, "did", json_object_new_string(si.did.c_str())); json_object_object_add(jsess, "username", json_object_new_string(si.username.c_str())); json_object_array_add(jarr, jsess); } } // Cluster sessions from all nodes (filtered by domain) if (g_Cluster && g_Cluster->isRunning()) { std::vector<Cluster::SessionInfo> csessions; g_Cluster->listAllSessions(csessions); for (const auto &cs : csessions) { std::string sidstr = cs.sid.c_str(); if (seen_sids.count(sidstr)) continue; if ((strcmp(cdid, "admin") == 0 && cs.did.empty()) || (!did.empty() && did == cs.did)) { seen_sids.insert(sidstr); json_object *jsess = json_object_new_object(); json_object_object_add(jsess, "sid", json_object_new_string(cs.sid.c_str())); json_object_object_add(jsess, "did", json_object_new_string(cs.did.c_str())); json_object_object_add(jsess, "username", json_object_new_string(cs.username.c_str())); json_object_array_add(jarr, jsess); } } } json_object_object_add(jobj, "sessions", jarr); sendJson(curreq, jobj); json_object_put(jobj); Loading @@ -1133,7 +1103,7 @@ namespace authdb { void apiRemoveSession(libhttppp::HttpRequest &curreq, const char *csid) { uuid::uuid sid; sid = csid; AuthSession.remSession(sid); AuthSession->remSession(sid); json_object *jobj = json_object_new_object(); json_object_object_add(jobj, "status", json_object_new_string("ok")); Loading