#include "parser_auth_by.h"
+#include "stg/users.h"
+#include "stg/user.h"
+
int PARSER_AUTH_BY::ParseStart(void * /*data*/, const char *el, const char **attr)
{
if (strcasecmp(el, "GetUserAuthBy") == 0)
void PARSER_AUTH_BY::CreateAnswer()
{
-answerList->erase(answerList->begin(), answerList->end());
-
USER_PTR u;
if (users->FindByName(login, &u))
{
- answerList->push_back("<user result=\"error\"/>");
+ answer = "<AuthorizedBy result=\"error\" reason=\"User not found.\"/>";
return;
}
-std::string s = "<AuthorizedBy>";
+answer.clear();
+answer += "<AuthorizedBy result=\"ok\">";
std::vector<std::string> list(u->GetAuthorizers());
for (std::vector<std::string>::const_iterator it = list.begin(); it != list.end(); ++it)
- s += "<Auth name=\"" + *it + "\"/>";
-s += "</AuthorizedBy>";
-answerList->push_back(s);
+ answer += "<Auth name=\"" + *it + "\"/>";
+answer += "</AuthorizedBy>";
}