mirror of
https://github.com/Telecominfraproject/wlan-cloud-ucentralsec.git
synced 2025-11-01 19:27:59 +00:00
Adding filters on retrieving users/subscribers.
This commit is contained in:
@@ -10,8 +10,7 @@
|
||||
namespace OpenWifi {
|
||||
|
||||
void RESTAPI_subusers_handler::DoGet() {
|
||||
std::vector<SecurityObjects::UserInfo> Users;
|
||||
bool IdOnly = (GetParameter("idOnly","false")=="true");
|
||||
bool IdOnly = GetBoolParameter("idOnly");
|
||||
auto operatorId = GetParameter("operatorId");
|
||||
auto nameSearch = GetParameter("nameSearch");
|
||||
auto emailSearch = GetParameter("emailSearch");
|
||||
@@ -36,46 +35,46 @@ namespace OpenWifi {
|
||||
auto count = StorageService()->UserDB().Count();
|
||||
return ReturnCountOnly(count);
|
||||
} else if(QB_.Select.empty()) {
|
||||
Poco::JSON::Array ArrayObj;
|
||||
Poco::JSON::Object Answer;
|
||||
std::string whereClause;
|
||||
if(!operatorId.empty()) {
|
||||
whereClause = baseQuery.empty() ? fmt::format(" owner='{}' ", operatorId) :
|
||||
fmt::format(" owner='{}' and {} ", operatorId, baseQuery);
|
||||
}
|
||||
if (StorageService()->SubDB().GetUsers(QB_.Offset, QB_.Limit, Users, whereClause)) {
|
||||
for (auto &i : Users) {
|
||||
Poco::JSON::Object Obj;
|
||||
if (IdOnly) {
|
||||
ArrayObj.add(i.id);
|
||||
} else {
|
||||
Sanitize(UserInfo_, i);
|
||||
i.to_json(Obj);
|
||||
ArrayObj.add(Obj);
|
||||
}
|
||||
|
||||
SecurityObjects::UserInfoList Users;
|
||||
if (StorageService()->SubDB().GetUsers(QB_.Offset, QB_.Limit, Users.users, whereClause)) {
|
||||
for (auto &i : Users.users) {
|
||||
Sanitize(UserInfo_, i);
|
||||
}
|
||||
}
|
||||
Answer.set(RESTAPI::Protocol::USERS, ArrayObj);
|
||||
|
||||
if(IdOnly) {
|
||||
Poco::JSON::Array Arr;
|
||||
Poco::JSON::Object Answer;
|
||||
|
||||
for(const auto &i:Users.users) {
|
||||
Arr.add(i.id);
|
||||
}
|
||||
Answer.set("users",Arr);
|
||||
return ReturnObject(Answer);
|
||||
}
|
||||
|
||||
Poco::JSON::Object Answer;
|
||||
Users.to_json(Answer);
|
||||
return ReturnObject(Answer);
|
||||
} else {
|
||||
Poco::JSON::Array ArrayObj;
|
||||
SecurityObjects::UserInfoList Users;
|
||||
for(auto &i:SelectedRecords()) {
|
||||
SecurityObjects::UserInfo UInfo;
|
||||
auto tI{i};
|
||||
if(StorageService()->SubDB().GetUserById(tI,UInfo)) {
|
||||
if(StorageService()->SubDB().GetUserById(i,UInfo)) {
|
||||
Poco::JSON::Object Obj;
|
||||
if (IdOnly) {
|
||||
ArrayObj.add(UInfo.id);
|
||||
} else {
|
||||
Sanitize(UserInfo_, UInfo);
|
||||
UInfo.to_json(Obj);
|
||||
ArrayObj.add(Obj);
|
||||
}
|
||||
Sanitize(UserInfo_, UInfo);
|
||||
Users.users.emplace_back(UInfo);
|
||||
}
|
||||
}
|
||||
Poco::JSON::Object RetObj;
|
||||
RetObj.set(RESTAPI::Protocol::USERS, ArrayObj);
|
||||
return ReturnObject(RetObj);
|
||||
Poco::JSON::Object Answer;
|
||||
Users.to_json(Answer);
|
||||
return ReturnObject(Answer);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user