1
0
mirror of https://github.com/anope/anope.git synced 2026-07-02 09:26:38 +02:00

Removed nickrequests, instead have unconfirmed registrations. Also made ns_resetpass allow remote-id to get past things such as kill immed.

This commit is contained in:
Adam
2011-03-05 17:23:22 -05:00
parent 90e5d0feaa
commit 6fe2d8af97
41 changed files with 374 additions and 627 deletions
+40 -54
View File
@@ -97,67 +97,53 @@ class CommandNSList : public Command
mync = u->Account();
source.Reply(_(LIST_HEADER), pattern.c_str());
if (!unconfirmed)
for (nickalias_map::const_iterator it = NickAliasList.begin(), it_end = NickAliasList.end(); it != it_end; ++it)
{
for (nickalias_map::const_iterator it = NickAliasList.begin(), it_end = NickAliasList.end(); it != it_end; ++it)
NickAlias *na = it->second;
/* Don't show private and forbidden nicks to non-services admins. */
if (na->HasFlag(NS_FORBIDDEN) && !is_servadmin)
continue;
else if (na->nc->HasFlag(NI_PRIVATE) && !is_servadmin && na->nc != mync)
continue;
else if (forbidden && !na->HasFlag(NS_FORBIDDEN))
continue;
else if (nsnoexpire && !na->HasFlag(NS_NO_EXPIRE))
continue;
else if (suspended && !na->nc->HasFlag(NI_SUSPENDED))
continue;
else if (unconfirmed && na->nc->HasFlag(NI_UNCONFIRMED))
continue;
/* We no longer compare the pattern against the output buffer.
* Instead we build a nice nick!user@host buffer to compare.
* The output is then generated separately. -TheShadow */
snprintf(buf, sizeof(buf), "%s!%s", na->nick.c_str(), !na->last_usermask.empty() && !na->HasFlag(NS_FORBIDDEN) ? na->last_usermask.c_str() : "*@*");
if (na->nick.equals_ci(pattern) || Anope::Match(buf, pattern))
{
NickAlias *na = it->second;
/* Don't show private and forbidden nicks to non-services admins. */
if (na->HasFlag(NS_FORBIDDEN) && !is_servadmin)
continue;
if (na->nc->HasFlag(NI_PRIVATE) && !is_servadmin && na->nc != mync)
continue;
if (forbidden && !na->HasFlag(NS_FORBIDDEN))
continue;
else if (nsnoexpire && !na->HasFlag(NS_NO_EXPIRE))
continue;
else if (suspended && !na->nc->HasFlag(NI_SUSPENDED))
continue;
/* We no longer compare the pattern against the output buffer.
* Instead we build a nice nick!user@host buffer to compare.
* The output is then generated separately. -TheShadow */
snprintf(buf, sizeof(buf), "%s!%s", na->nick.c_str(), !na->last_usermask.empty() && !na->HasFlag(NS_FORBIDDEN) ? na->last_usermask.c_str() : "*@*");
if (na->nick.equals_ci(pattern) || Anope::Match(buf, pattern))
if (((count + 1 >= from && count + 1 <= to) || (!from && !to)) && ++nnicks <= Config->NSListMax)
{
if (((count + 1 >= from && count + 1 <= to) || (!from && !to)) && ++nnicks <= Config->NSListMax)
{
if (is_servadmin && na->HasFlag(NS_NO_EXPIRE))
noexpire_char = '!';
else
noexpire_char = ' ';
if (na->nc->HasFlag(NI_HIDE_MASK) && !is_servadmin && na->nc != mync)
snprintf(buf, sizeof(buf), "%-20s [Hostname Hidden]", na->nick.c_str());
else if (na->HasFlag(NS_FORBIDDEN))
snprintf(buf, sizeof(buf), "%-20s [Forbidden]", na->nick.c_str());
else if (na->nc->HasFlag(NI_SUSPENDED))
snprintf(buf, sizeof(buf), "%-20s [Suspended]", na->nick.c_str());
else
snprintf(buf, sizeof(buf), "%-20s %s", na->nick.c_str(), na->last_usermask.c_str());
source.Reply(" %c%s", noexpire_char, buf);
}
++count;
}
}
}
if (unconfirmed || is_servadmin)
{
noexpire_char = ' ';
for (nickrequest_map::const_iterator it = NickRequestList.begin(), it_end = NickRequestList.end(); it != it_end; ++it)
{
NickRequest *nr = it->second;
snprintf(buf, sizeof(buf), "%s!*@*", nr->nick.c_str());
if ((nr->nick.equals_ci(pattern) || Anope::Match(buf, pattern)) && ++nnicks <= Config->NSListMax)
{
snprintf(buf, sizeof(buf), "%-20s [UNCONFIRMED]", nr->nick.c_str());
if (is_servadmin && na->HasFlag(NS_NO_EXPIRE))
noexpire_char = '!';
else
noexpire_char = ' ';
if (na->nc->HasFlag(NI_HIDE_MASK) && !is_servadmin && na->nc != mync)
snprintf(buf, sizeof(buf), "%-20s [Hostname Hidden]", na->nick.c_str());
else if (na->HasFlag(NS_FORBIDDEN))
snprintf(buf, sizeof(buf), "%-20s [Forbidden]", na->nick.c_str());
else if (na->nc->HasFlag(NI_SUSPENDED))
snprintf(buf, sizeof(buf), "%-20s [Suspended]", na->nick.c_str());
else if (na->nc->HasFlag(NI_UNCONFIRMED))
snprintf(buf, sizeof(buf), "%-20s [Unconfirmed]", na->nick.c_str());
else
snprintf(buf, sizeof(buf), "%-20s %s", na->nick.c_str(), na->last_usermask.c_str());
source.Reply(" %c%s", noexpire_char, buf);
}
++count;
}
}
source.Reply(_("End of list - %d/%d matches shown."), nnicks > Config->NSListMax ? Config->NSListMax : nnicks, nnicks);
return MOD_CONT;
}