(context.querySecManager());
if(secmgr == NULL)
{
throw MakeStringException(ECLWATCH_INVALID_SEC_MANAGER, MSG_SEC_MANAGER_IS_NULL);
}
CLdapSecManager* ldapsecmgr = (CLdapSecManager*)secmgr;
checkUser(context);
StringBuffer xls;
xls.append("");
xls.append("");
xls.append("");
xls.append("");
xls.append("User Account Information");
xls.append("");
xls.append("");
xls.append("");
xls.append("");
xls.append("");
xls.append("Login Name | ");
xls.append("First Name | ");
xls.append("Last Name | ");
xls.append("Group Name | ");
xls.append("
");
StringArray& usernames = req.getUsernames();
StringArray& groupnames = req.getGroupnames();
if (usernames.length() > 0)
{
for(unsigned i = 0; i < usernames.length(); i++)
{
const char* username = usernames.item(i);
if (!username || !*username)
continue;
Owned user = (CLdapSecUser*)secmgr->createUser(username);
secmgr->getUserInfo(*user.get());
const char* firstname = user->getFirstName();
const char* lastname = user->getLastName();
StringArray groupnames1;
ldapsecmgr->getGroups(username, groupnames1);
///groupnames1.append("TestGroup1");
///groupnames1.append("TestGroup2");
if (groupnames1.length() < 1)
{
xls.append("");
xls.appendf("%s | ", username);
if (!firstname || !*firstname)
xls.append(" | ");
else
xls.appendf("%s | ", firstname);
if (!lastname || !*lastname)
xls.append(" | ");
else
xls.appendf("%s | ", lastname);
xls.append(" | ");
xls.append("
");
}
else
{
for(unsigned i = 0; i < groupnames1.length(); i++)
{
const char* grpname = groupnames1.item(i);
if(grpname == NULL || grpname[0] == '\0')
continue;
xls.append("");
xls.appendf("%s | ", username);
if (!firstname || !*firstname)
xls.append(" | ");
else
xls.appendf("%s | ", firstname);
if (!lastname || !*lastname)
xls.append(" | ");
else
xls.appendf("%s | ", lastname);
xls.appendf("%s | ", grpname);
xls.append("
");
}
}
}
}
else if (groupnames.length() > 0)
{
for(unsigned i = 0; i < groupnames.length(); i++)
{
const char* groupname = groupnames.item(i);
if (!groupname || !*groupname)
continue;
StringArray usernames1;
ldapsecmgr->getGroupMembers(groupname, usernames1);
///usernames1.append("_clo");
///usernames1.append("_rkc");
for(unsigned j = 0; j < usernames1.length(); j++)
{
const char* usrname = usernames1.item(j);
if(usrname == NULL || usrname[0] == '\0')
continue;
Owned user = (CLdapSecUser*)secmgr->createUser(usrname);
secmgr->getUserInfo(*user.get());
const char* firstname = user->getFirstName();
const char* lastname = user->getLastName();
xls.append("");
xls.appendf("%s | ", usrname);
if (!firstname || !*firstname)
xls.append(" | ");
else
xls.appendf("%s | ", firstname);
if (!lastname || !*lastname)
xls.append(" | ");
else
xls.appendf("%s | ", lastname);
xls.appendf("%s | ", groupname);
xls.append("
");
}
}
}
xls.append("");
xls.append("
");
xls.append("");
xls.append("");
MemoryBuffer buff;
buff.setBuffer(xls.length(), (void*)xls.str());
resp.setResult(buff);
resp.setResult_mimetype("application/vnd.ms-excel");
}
catch(IException* e)
{
FORWARDEXCEPTION(context, e, ECLWATCH_INTERNAL_ERROR);
}
return true;
}
int Cws_accessSoapBindingEx::onGetForm(IEspContext &context, CHttpRequest* request, CHttpResponse* response, const char *service, const char *method)
{
try
{
if(stricmp(method,"SecurityNotEnabled")==0)
{
StringBuffer page;
page.append(
""
""
""
""
""
"Security Not Enabled"
""
""
"In order to use this feature, authentication should be enabled.");
page.append("
"
"");
response->setContent(page.str());
response->setContentType("text/html");
response->send();
return 0;
}
else if(stricmp(method,"FirefoxNotSupport")==0)
{
StringBuffer page;
page.append(
""
""
""
""
""
"Firefox Not Support"
""
""
"This feature is not supported under Firefox.");
page.append("
"
"");
response->setContent(page.str());
response->setContentType("text/html");
response->send();
return 0;
}
}
catch(IException* e)
{
FORWARDEXCEPTION(context, e, ECLWATCH_INTERNAL_ERROR);
}
return onGetForm(context, request, response, service, method);
}