diff options
author | geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b <geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2005-08-21 12:48:15 +0000 |
---|---|---|
committer | geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b <geniusdex geniusdex@31f1291d-b8d6-0310-a050-a5561fc1590b@5417fbe8-f217-4b02-8779-1006273d7864> | 2005-08-21 12:48:15 +0000 |
commit | b5d9a597462261ee6b6abe3cb99169d52e4d9896 (patch) | |
tree | 59b6c2e44f7ba3c0f7da41fddddbd45c5ff64eab /src | |
parent | 92fbc6c1dcd56b05ac5fd0f01ee7a8b4afa2fcf5 (diff) |
BUILD : 1.7.10 (853) BUGS : NOTES : Moved SET for other nicks (SA only) to a seperate SASET command
git-svn-id: svn://svn.anope.org/anope/trunk@853 31f1291d-b8d6-0310-a050-a5561fc1590b
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@606 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src')
-rw-r--r-- | src/core/ns_saset.c | 470 | ||||
-rw-r--r-- | src/core/ns_set.c | 101 |
2 files changed, 483 insertions, 88 deletions
diff --git a/src/core/ns_saset.c b/src/core/ns_saset.c new file mode 100644 index 000000000..09f47fe86 --- /dev/null +++ b/src/core/ns_saset.c @@ -0,0 +1,470 @@ +/* NickServ core functions + * + * (C) 2003-2005 Anope Team + * Contact us at info@anope.org + * + * Please read COPYING and README for further details. + * + * Based on the original code of Epona by Lara. + * Based on the original code of Services by Andy Church. + * + * $Id: ns_set.c 850 2005-08-07 14:52:04Z geniusdex $ + * + */ +/*************************************************************************/ + +#include "module.h" + +int do_saset(User * u); +int do_saset_display(User * u, NickCore * nc, char *param); +int do_saset_password(User * u, NickCore * nc, char *param); +int do_saset_url(User * u, NickCore * nc, char *param); +int do_saset_email(User * u, NickCore * nc, char *param); +int do_saset_greet(User * u, NickCore * nc, char *param); +int do_saset_icq(User * u, NickCore * nc, char *param); +int do_saset_kill(User * u, NickCore * nc, char *param); +int do_saset_secure(User * u, NickCore * nc, char *param); +int do_saset_private(User * u, NickCore * nc, char *param); +int do_saset_msg(User * u, NickCore * nc, char *param); +int do_saset_hide(User * u, NickCore * nc, char *param); +int do_saset_noexpire(User * u, NickAlias * nc, char *param); +void myNickServHelp(User * u); + +/** + * Create the command, and tell anope about it. + * @param argc Argument count + * @param argv Argument list + * @return MOD_CONT to allow the module, MOD_STOP to stop it + **/ +int AnopeInit(int argc, char **argv) +{ + Command *c; + + moduleAddAuthor("Anope"); + moduleAddVersion("$Id: ns_set.c 850 2005-08-07 14:52:04Z geniusdex $"); + moduleSetType(CORE); + + c = createCommand("SASET", do_saset, is_services_admin, -1, -1, -1, + NICK_HELP_SASET, NICK_HELP_SASET); + moduleAddCommand(NICKSERV, c, MOD_UNIQUE); + c = createCommand("SASET DISPLAY", NULL, is_services_admin, NICK_HELP_SASET_DISPLAY, -1, + -1, -1, -1); + moduleAddCommand(NICKSERV, c, MOD_UNIQUE); + c = createCommand("SASET PASSWORD", NULL, is_services_admin, NICK_HELP_SASET_PASSWORD, + -1, -1, -1, -1); + moduleAddCommand(NICKSERV, c, MOD_UNIQUE); + c = createCommand("SASET URL", NULL, is_services_admin, NICK_HELP_SASET_URL, -1, -1, -1, + -1); + moduleAddCommand(NICKSERV, c, MOD_UNIQUE); + c = createCommand("SASET EMAIL", NULL, is_services_admin, NICK_HELP_SASET_EMAIL, -1, -1, + -1, -1); + moduleAddCommand(NICKSERV, c, MOD_UNIQUE); + c = createCommand("SASET ICQ", NULL, is_services_admin, NICK_HELP_SASET_ICQ, -1, -1, -1, + -1); + moduleAddCommand(NICKSERV, c, MOD_UNIQUE); + c = createCommand("SASET GREET", NULL, is_services_admin, NICK_HELP_SASET_GREET, -1, -1, + -1, -1); + moduleAddCommand(NICKSERV, c, MOD_UNIQUE); + c = createCommand("SASET KILL", NULL, is_services_admin, NICK_HELP_SASET_KILL, -1, -1, + -1, -1); + moduleAddCommand(NICKSERV, c, MOD_UNIQUE); + c = createCommand("SASET SECURE", NULL, is_services_admin, NICK_HELP_SASET_SECURE, -1, + -1, -1, -1); + moduleAddCommand(NICKSERV, c, MOD_UNIQUE); + c = createCommand("SASET PRIVATE", NULL, is_services_admin, NICK_HELP_SASET_PRIVATE, -1, + -1, -1, -1); + moduleAddCommand(NICKSERV, c, MOD_UNIQUE); + c = createCommand("SASET MSG", NULL, is_services_admin, NICK_HELP_SASET_MSG, -1, -1, -1, + -1); + moduleAddCommand(NICKSERV, c, MOD_UNIQUE); + c = createCommand("SASET HIDE", NULL, is_services_admin, NICK_HELP_SASET_HIDE, -1, -1, + -1, -1); + moduleAddCommand(NICKSERV, c, MOD_UNIQUE); + c = createCommand("SASET NOEXPIRE", is_services_admin, NULL, -1, -1, -1, + NICK_HELP_SASET_NOEXPIRE, + NICK_HELP_SASET_NOEXPIRE); + moduleAddCommand(NICKSERV, c, MOD_UNIQUE); + + moduleSetNickHelp(myNickServHelp); + + return MOD_CONT; +} + +/** + * Unload the module + **/ +void AnopeFini(void) +{ + +} + + + +/** + * Add the help response to anopes /ns help output. + * @param u The user who is requesting help + **/ +void myNickServHelp(User * u) +{ + if (is_services_admin(u)) + notice_lang(s_NickServ, u, NICK_HELP_CMD_SASET); +} + +/** + * The /ns saset command. + * @param u The user who issued the command + * @param MOD_CONT to continue processing other modules, MOD_STOP to stop processing. + **/ +int do_saset(User * u) +{ + char *nick = strtok(NULL, " "); + char *cmd = strtok(NULL, " "); + char *param = strtok(NULL, " "); + + NickAlias *na; + + if (readonly) { + notice_lang(s_NickServ, u, NICK_SASET_DISABLED); + return MOD_CONT; + } + + if (!(na = findnick(nick))) { + notice_lang(s_NickServ, u, NICK_SASET_BAD_NICK, nick); + return MOD_CONT; + } + + if (!param + && (!cmd + || (stricmp(cmd, "URL") != 0 && stricmp(cmd, "EMAIL") != 0 + && stricmp(cmd, "GREET") != 0 + && stricmp(cmd, "ICQ") != 0))) { + syntax_error(s_NickServ, u, "SASET", NICK_SASET_SYNTAX); + } else if (!na) { + notice_lang(s_NickServ, u, NICK_NOT_REGISTERED); + } else if (na->status & NS_VERBOTEN) { + notice_lang(s_NickServ, u, NICK_X_FORBIDDEN, na->nick); + } else if (na->nc->flags & NI_SUSPENDED) { + notice_lang(s_NickServ, u, NICK_X_SUSPENDED, na->nick); + } else if (stricmp(cmd, "DISPLAY") == 0) { + do_saset_display(u, na->nc, param); + } else if (stricmp(cmd, "PASSWORD") == 0) { + do_saset_password(u, na->nc, param); + } else if (stricmp(cmd, "URL") == 0) { + do_saset_url(u, na->nc, param); + } else if (stricmp(cmd, "EMAIL") == 0) { + do_saset_email(u, na->nc, param); + } else if (stricmp(cmd, "ICQ") == 0) { + do_saset_icq(u, na->nc, param); + } else if (stricmp(cmd, "GREET") == 0) { + do_saset_greet(u, na->nc, param); + } else if (stricmp(cmd, "KILL") == 0) { + do_saset_kill(u, na->nc, param); + } else if (stricmp(cmd, "SECURE") == 0) { + do_saset_secure(u, na->nc, param); + } else if (stricmp(cmd, "PRIVATE") == 0) { + do_saset_private(u, na->nc, param); + } else if (stricmp(cmd, "MSG") == 0) { + do_saset_msg(u, na->nc, param); + } else if (stricmp(cmd, "HIDE") == 0) { + do_saset_hide(u, na->nc, param); + } else if (stricmp(cmd, "NOEXPIRE") == 0) { + do_saset_noexpire(u, na, param); + } else { + notice_lang(s_NickServ, u, NICK_SASET_UNKNOWN_OPTION, cmd); + } + return MOD_CONT; +} + +int do_saset_display(User * u, NickCore * nc, char *param) +{ + int i; + NickAlias *na; + + /* First check whether param is a valid nick of the group */ + for (i = 0; i < nc->aliases.count; i++) { + na = nc->aliases.list[i]; + if (stricmp(na->nick, param) == 0) { + param = na->nick; /* Because case may differ */ + break; + } + } + + if (i == nc->aliases.count) { + notice_lang(s_NickServ, u, NICK_SASET_DISPLAY_INVALID, nc->display); + return MOD_CONT; + } + + change_core_display(nc, param); + notice_lang(s_NickServ, u, NICK_SASET_DISPLAY_CHANGED, nc->display); + + /* Enable nick tracking if enabled */ + if (NSNickTracking) + nsStartNickTracking(u); + + return MOD_CONT; +} + +int do_saset_password(User * u, NickCore * nc, char *param) +{ + int len = strlen(param); + + if (NSSecureAdmins && u->na->nc != nc && nick_is_services_admin(nc) + && !is_services_root(u)) { + notice_lang(s_NickServ, u, PERMISSION_DENIED); + return MOD_CONT; + } else if (stricmp(nc->display, param) == 0 + || (StrictPasswords && len < 5)) { + notice_lang(s_NickServ, u, MORE_OBSCURE_PASSWORD); + return MOD_CONT; + } + + if (nc->pass) + free(nc->pass); + +#ifdef USE_ENCRYPTION + nc->pass = smalloc(PASSMAX); + + if (encrypt(param, len, nc->pass, PASSMAX) < 0) { + memset(param, 0, len); + alog("%s: Failed to encrypt password for %s (set)", s_NickServ, + nc->display); + notice_lang(s_NickServ, u, NICK_SASET_PASSWORD_FAILED, nc->display); + return MOD_CONT; + } + + memset(param, 0, len); + notice_lang(s_NickServ, u, NICK_SASET_PASSWORD_CHANGED, nc->display); +#else + nc->pass = sstrdup(param); + notice_lang(s_NickServ, u, NICK_SASET_PASSWORD_CHANGED_TO, nc->display, nc->pass); +#endif + + alog("%s: %s!%s@%s used SASET PASSWORD on %s (e-mail: %s)", s_NickServ, u->nick, u->username, u->host, nc->display, (nc->email ? nc->email : "none")); + if (WallSetpass) + anope_cmd_global(s_NickServ, + "\2%s\2 used SASET PASSWORD on \2%s\2", + u->nick, nc->display); + return MOD_CONT; +} + +int do_saset_url(User * u, NickCore * nc, char *param) +{ + if (nc->url) + free(nc->url); + + if (param) { + nc->url = sstrdup(param); + notice_lang(s_NickServ, u, NICK_SASET_URL_CHANGED, nc->display, param); + } else { + nc->url = NULL; + notice_lang(s_NickServ, u, NICK_SASET_URL_UNSET, nc->display); + } + return MOD_CONT; +} + +int do_saset_email(User * u, NickCore * nc, char *param) +{ + if (!param && NSForceEmail) { + notice_lang(s_NickServ, u, NICK_SASET_EMAIL_UNSET_IMPOSSIBLE); + return MOD_CONT; + } else if (NSSecureAdmins && u->na->nc != nc + && nick_is_services_admin(nc) + && !is_services_root(u)) { + notice_lang(s_NickServ, u, PERMISSION_DENIED); + return MOD_CONT; + } else if (param && !MailValidate(param)) { + notice_lang(s_NickServ, u, MAIL_X_INVALID, param); + return MOD_CONT; + } + + alog("%s: %s!%s@%s used SASET EMAIL on %s (e-mail: %s)", s_NickServ, u->nick, u->username, u->host, nc->display, (nc->email ? nc->email : "none")); + + if (nc->email) + free(nc->email); + + if (param) { + nc->email = sstrdup(param); + notice_lang(s_NickServ, u, NICK_SASET_EMAIL_CHANGED, nc->display, param); + } else { + nc->email = NULL; + notice_lang(s_NickServ, u, NICK_SASET_EMAIL_UNSET, nc->display); + } + return MOD_CONT; +} + +int do_saset_icq(User * u, NickCore * nc, char *param) +{ + if (param) { + int32 tmp = atol(param); + if (tmp == 0) { + notice_lang(s_NickServ, u, NICK_SASET_ICQ_INVALID, param); + } else { + nc->icq = tmp; + notice_lang(s_NickServ, u, NICK_SASET_ICQ_CHANGED, nc->display, param); + } + } else { + nc->icq = 0; + notice_lang(s_NickServ, u, NICK_SASET_ICQ_UNSET, nc->display); + } + return MOD_CONT; +} + +int do_saset_greet(User * u, NickCore * nc, char *param) +{ + if (nc->greet) + free(nc->greet); + + if (param) { + char buf[BUFSIZE]; + char *end = strtok(NULL, ""); + + snprintf(buf, sizeof(buf), "%s%s%s", param, (end ? " " : ""), + (end ? end : "")); + + nc->greet = sstrdup(buf); + notice_lang(s_NickServ, u, NICK_SASET_GREET_CHANGED, nc->display, buf); + } else { + nc->greet = NULL; + notice_lang(s_NickServ, u, NICK_SASET_GREET_UNSET, nc->display); + } + return MOD_CONT; +} + +int do_saset_kill(User * u, NickCore * nc, char *param) +{ + if (stricmp(param, "ON") == 0) { + nc->flags |= NI_KILLPROTECT; + nc->flags &= ~(NI_KILL_QUICK | NI_KILL_IMMED); + notice_lang(s_NickServ, u, NICK_SASET_KILL_ON, nc->display); + } else if (stricmp(param, "QUICK") == 0) { + nc->flags |= NI_KILLPROTECT | NI_KILL_QUICK; + nc->flags &= ~NI_KILL_IMMED; + notice_lang(s_NickServ, u, NICK_SASET_KILL_QUICK, nc->display); + } else if (stricmp(param, "IMMED") == 0) { + if (NSAllowKillImmed) { + nc->flags |= NI_KILLPROTECT | NI_KILL_IMMED; + nc->flags &= ~NI_KILL_QUICK; + notice_lang(s_NickServ, u, NICK_SASET_KILL_IMMED, nc->display); + } else { + notice_lang(s_NickServ, u, NICK_SASET_KILL_IMMED_DISABLED); + } + } else if (stricmp(param, "OFF") == 0) { + nc->flags &= ~(NI_KILLPROTECT | NI_KILL_QUICK | NI_KILL_IMMED); + notice_lang(s_NickServ, u, NICK_SASET_KILL_OFF, nc->display); + } else { + syntax_error(s_NickServ, u, "SASET KILL", + NSAllowKillImmed ? NICK_SASET_KILL_IMMED_SYNTAX : + NICK_SASET_KILL_SYNTAX); + } + return MOD_CONT; +} + +int do_saset_secure(User * u, NickCore * nc, char *param) +{ + if (stricmp(param, "ON") == 0) { + nc->flags |= NI_SECURE; + notice_lang(s_NickServ, u, NICK_SASET_SECURE_ON, nc->display); + } else if (stricmp(param, "OFF") == 0) { + nc->flags &= ~NI_SECURE; + notice_lang(s_NickServ, u, NICK_SASET_SECURE_OFF, nc->display); + } else { + syntax_error(s_NickServ, u, "SASET SECURE", NICK_SASET_SECURE_SYNTAX); + } + return MOD_CONT; +} + +int do_saset_private(User * u, NickCore * nc, char *param) +{ + if (stricmp(param, "ON") == 0) { + nc->flags |= NI_PRIVATE; + notice_lang(s_NickServ, u, NICK_SASET_PRIVATE_ON, nc->display); + } else if (stricmp(param, "OFF") == 0) { + nc->flags &= ~NI_PRIVATE; + notice_lang(s_NickServ, u, NICK_SASET_PRIVATE_OFF, nc->display); + } else { + syntax_error(s_NickServ, u, "SASET PRIVATE", + NICK_SASET_PRIVATE_SYNTAX); + } + return MOD_CONT; +} + +int do_saset_msg(User * u, NickCore * nc, char *param) +{ + if (!UsePrivmsg) { + notice_lang(s_NickServ, u, NICK_SASET_OPTION_DISABLED, "MSG"); + return MOD_CONT; + } + + if (stricmp(param, "ON") == 0) { + nc->flags |= NI_MSG; + notice_lang(s_NickServ, u, NICK_SASET_MSG_ON, nc->display); + } else if (stricmp(param, "OFF") == 0) { + nc->flags &= ~NI_MSG; + notice_lang(s_NickServ, u, NICK_SASET_MSG_OFF, nc->display); + } else { + syntax_error(s_NickServ, u, "SASET MSG", NICK_SASET_MSG_SYNTAX); + } + return MOD_CONT; +} + +int do_saset_hide(User * u, NickCore * nc, char *param) +{ + int flag, onmsg, offmsg; + + if (stricmp(param, "EMAIL") == 0) { + flag = NI_HIDE_EMAIL; + onmsg = NICK_SASET_HIDE_EMAIL_ON; + offmsg = NICK_SASET_HIDE_EMAIL_OFF; + } else if (stricmp(param, "USERMASK") == 0) { + flag = NI_HIDE_MASK; + onmsg = NICK_SASET_HIDE_MASK_ON; + offmsg = NICK_SASET_HIDE_MASK_OFF; + } else if (stricmp(param, "STATUS") == 0) { + flag = NI_HIDE_STATUS; + onmsg = NICK_SASET_HIDE_STATUS_ON; + offmsg = NICK_SASET_HIDE_STATUS_OFF; + } else if (stricmp(param, "QUIT") == 0) { + flag = NI_HIDE_QUIT; + onmsg = NICK_SASET_HIDE_QUIT_ON; + offmsg = NICK_SASET_HIDE_QUIT_OFF; + } else { + syntax_error(s_NickServ, u, "SASET HIDE", NICK_SASET_HIDE_SYNTAX); + return MOD_CONT; + } + + param = strtok(NULL, " "); + if (!param) { + syntax_error(s_NickServ, u, "SASET HIDE", NICK_SASET_HIDE_SYNTAX); + } else if (stricmp(param, "ON") == 0) { + nc->flags |= flag; + notice_lang(s_NickServ, u, onmsg, nc->display, s_NickServ); + } else if (stricmp(param, "OFF") == 0) { + nc->flags &= ~flag; + notice_lang(s_NickServ, u, offmsg, nc->display, s_NickServ); + } else { + syntax_error(s_NickServ, u, "SASET HIDE", NICK_SASET_HIDE_SYNTAX); + } + return MOD_CONT; +} + +int do_saset_noexpire(User * u, NickAlias * na, char *param) +{ + if (!param) { + syntax_error(s_NickServ, u, "SASET NOEXPIRE", + NICK_SASET_NOEXPIRE_SYNTAX); + return MOD_CONT; + } + if (stricmp(param, "ON") == 0) { + na->status |= NS_NO_EXPIRE; + notice_lang(s_NickServ, u, NICK_SASET_NOEXPIRE_ON, na->nick); + } else if (stricmp(param, "OFF") == 0) { + na->status &= ~NS_NO_EXPIRE; + notice_lang(s_NickServ, u, NICK_SASET_NOEXPIRE_OFF, na->nick); + } else { + syntax_error(s_NickServ, u, "SASET NOEXPIRE", + NICK_SASET_NOEXPIRE_SYNTAX); + } + return MOD_CONT; +} + +/* EOF */ diff --git a/src/core/ns_set.c b/src/core/ns_set.c index a766fb8fd..8ae5446d6 100644 --- a/src/core/ns_set.c +++ b/src/core/ns_set.c @@ -28,7 +28,6 @@ int do_set_secure(User * u, NickCore * nc, char *param); int do_set_private(User * u, NickCore * nc, char *param); int do_set_msg(User * u, NickCore * nc, char *param); int do_set_hide(User * u, NickCore * nc, char *param); -int do_set_noexpire(User * u, NickAlias * nc, char *param); void myNickServHelp(User * u); /** @@ -45,8 +44,7 @@ int AnopeInit(int argc, char **argv) moduleAddVersion("$Id$"); moduleSetType(CORE); - c = createCommand("SET", do_set, NULL, NICK_HELP_SET, -1, -1, - NICK_SERVADMIN_HELP_SET, NICK_SERVADMIN_HELP_SET); + c = createCommand("SET", do_set, NULL, NICK_HELP_SET, -1, -1, -1, -1); moduleAddCommand(NICKSERV, c, MOD_UNIQUE); c = createCommand("SET DISPLAY", NULL, NULL, NICK_HELP_SET_DISPLAY, -1, -1, -1, -1); @@ -81,10 +79,6 @@ int AnopeInit(int argc, char **argv) c = createCommand("SET HIDE", NULL, NULL, NICK_HELP_SET_HIDE, -1, -1, -1, -1); moduleAddCommand(NICKSERV, c, MOD_UNIQUE); - c = createCommand("SET NOEXPIRE", NULL, NULL, -1, -1, -1, - NICK_SERVADMIN_HELP_SET_NOEXPIRE, - NICK_SERVADMIN_HELP_SET_NOEXPIRE); - moduleAddCommand(NICKSERV, c, MOD_UNIQUE); moduleSetNickHelp(myNickServHelp); @@ -119,48 +113,26 @@ int do_set(User * u) { char *cmd = strtok(NULL, " "); char *param = strtok(NULL, " "); - char *tmp = NULL; - - NickAlias *na; - int is_servadmin = is_services_admin(u); - int set_nick = 0; - + NickAlias *na = u->na; + if (readonly) { notice_lang(s_NickServ, u, NICK_SET_DISABLED); return MOD_CONT; } - - if (is_servadmin && cmd && (na = findnick(cmd))) { - tmp = strtok(NULL, " "); - /* If there is no param left, don't treat the cmd as a - * nick. We have more chance of success that way. -GD - */ - if (tmp) { - cmd = param; - param = strtok(NULL, " "); - set_nick = 1; - } - } else { - na = u->na; - } - + if (!param && (!cmd || (stricmp(cmd, "URL") != 0 && stricmp(cmd, "EMAIL") != 0 && stricmp(cmd, "GREET") != 0 && stricmp(cmd, "ICQ") != 0))) { - if (is_servadmin) { - syntax_error(s_NickServ, u, "SET", NICK_SET_SERVADMIN_SYNTAX); - } else { - syntax_error(s_NickServ, u, "SET", NICK_SET_SYNTAX); - } + syntax_error(s_NickServ, u, "SET", NICK_SET_SYNTAX); } else if (!na) { notice_lang(s_NickServ, u, NICK_NOT_REGISTERED); } else if (na->status & NS_VERBOTEN) { notice_lang(s_NickServ, u, NICK_X_FORBIDDEN, na->nick); } else if (na->nc->flags & NI_SUSPENDED) { notice_lang(s_NickServ, u, NICK_X_SUSPENDED, na->nick); - } else if (!is_servadmin && !nick_identified(u)) { + } else if (!nick_identified(u)) { notice_lang(s_NickServ, u, NICK_IDENTIFY_REQUIRED, s_NickServ); } else if (stricmp(cmd, "DISPLAY") == 0) { do_set_display(u, na->nc, param); @@ -186,14 +158,8 @@ int do_set(User * u) do_set_msg(u, na->nc, param); } else if (stricmp(cmd, "HIDE") == 0) { do_set_hide(u, na->nc, param); - } else if (stricmp(cmd, "NOEXPIRE") == 0) { - do_set_noexpire(u, na, param); } else { - if (is_servadmin) - notice_lang(s_NickServ, u, NICK_SET_UNKNOWN_OPTION_OR_BAD_NICK, - cmd); - else - notice_lang(s_NickServ, u, NICK_SET_UNKNOWN_OPTION, cmd); + notice_lang(s_NickServ, u, NICK_SET_UNKNOWN_OPTION, cmd); } return MOD_CONT; } @@ -231,11 +197,7 @@ int do_set_password(User * u, NickCore * nc, char *param) { int len = strlen(param); - if (NSSecureAdmins && u->na->nc != nc && nick_is_services_admin(nc) - && !is_services_root(u)) { - notice_lang(s_NickServ, u, PERMISSION_DENIED); - return MOD_CONT; - } else if (stricmp(nc->display, param) == 0 + if (stricmp(nc->display, param) == 0 || (StrictPasswords && len < 5)) { notice_lang(s_NickServ, u, MORE_OBSCURE_PASSWORD); return MOD_CONT; @@ -262,17 +224,10 @@ int do_set_password(User * u, NickCore * nc, char *param) notice_lang(s_NickServ, u, NICK_SET_PASSWORD_CHANGED_TO, nc->pass); #endif - if (u->na && u->na->nc != nc && is_services_admin(u)) { - alog("%s: %s!%s@%s used SET PASSWORD as Services admin on %s (e-mail: %s)", s_NickServ, u->nick, u->username, u->host, nc->display, (nc->email ? nc->email : "none")); - if (WallSetpass) - anope_cmd_global(s_NickServ, - "\2%s\2 used SET PASSWORD as Services admin on \2%s\2", - u->nick, nc->display); - } else { - alog("%s: %s!%s@%s (e-mail: %s) changed its password.", s_NickServ, + alog("%s: %s!%s@%s (e-mail: %s) changed its password.", s_NickServ, u->nick, u->username, u->host, (nc->email ? nc->email : "none")); - } + return MOD_CONT; } @@ -316,23 +271,15 @@ int do_set_email(User * u, NickCore * nc, char *param) if (!param && NSForceEmail) { notice_lang(s_NickServ, u, NICK_SET_EMAIL_UNSET_IMPOSSIBLE); return MOD_CONT; - } else if (NSSecureAdmins && u->na->nc != nc - && nick_is_services_admin(nc) - && !is_services_root(u)) { - notice_lang(s_NickServ, u, PERMISSION_DENIED); - return MOD_CONT; } else if (param && !MailValidate(param)) { notice_lang(s_NickServ, u, MAIL_X_INVALID, param); return MOD_CONT; } - if (u->na && u->na->nc != nc && is_services_admin(u)) { - alog("%s: %s!%s@%s used SET EMAIL as Services admin on %s (e-mail: %s)", s_NickServ, u->nick, u->username, u->host, nc->display, (nc->email ? nc->email : "none")); - } else { - alog("%s: %s!%s@%s (e-mail: %s) changed its e-mail to %s.", + alog("%s: %s!%s@%s (e-mail: %s) changed its e-mail to %s.", s_NickServ, u->nick, u->username, u->host, (nc->email ? nc->email : "none"), (param ? param : "none")); - } + if (nc->email) free(nc->email); @@ -501,26 +448,4 @@ int do_set_hide(User * u, NickCore * nc, char *param) return MOD_CONT; } -int do_set_noexpire(User * u, NickAlias * na, char *param) -{ - if (!is_services_admin(u)) { - notice_lang(s_NickServ, u, PERMISSION_DENIED); - return MOD_CONT; - } - if (!param) { - syntax_error(s_NickServ, u, "SET NOEXPIRE", - NICK_SET_NOEXPIRE_SYNTAX); - return MOD_CONT; - } - if (stricmp(param, "ON") == 0) { - na->status |= NS_NO_EXPIRE; - notice_lang(s_NickServ, u, NICK_SET_NOEXPIRE_ON, na->nick); - } else if (stricmp(param, "OFF") == 0) { - na->status &= ~NS_NO_EXPIRE; - notice_lang(s_NickServ, u, NICK_SET_NOEXPIRE_OFF, na->nick); - } else { - syntax_error(s_NickServ, u, "SET NOEXPIRE", - NICK_SET_NOEXPIRE_SYNTAX); - } - return MOD_CONT; -} +/* EOF */ |