]> jfr.im git - irc/atheme/atheme.git/commitdiff
tell anything logged in to an account when it has been (F)VERIFYed (#841)
authorJess Porter <redacted>
Sun, 16 Jan 2022 21:39:44 +0000 (21:39 +0000)
committerGitHub <redacted>
Sun, 16 Jan 2022 21:39:44 +0000 (21:39 +0000)
* tell anything logged in to an account when it has been (F)VERIFYed

* don't thank on fverify

modules/nickserv/verify.c

index 9459188e84de3894f589271a32079ab94fca66eb..6580e31e043aac379e51b8e738d529da01e0b115 100644 (file)
 #include <atheme.h>
 
 static void
-ns_verify_activate_account(struct sourceinfo *si, struct myuser *mu)
+ns_verify_activate_account(struct sourceinfo *si, struct myuser *mu, bool force)
 {
        mowgli_node_t *n;
        struct hook_user_req req;
+       const char *thanks = _("Thank you for verifying your e-mail address! You have taken steps in ensuring that your registrations are not exploited.");
+       const char *confirm = _("\2%s\2 has now been verified.");
+
        mu->flags &= ~MU_WAITAUTH;
 
        metadata_delete(mu, "private:verify:register:key");
        metadata_delete(mu, "private:verify:register:timestamp");
 
-       command_success_nodata(si, _("\2%s\2 has now been verified."), entity(mu)->name);
-       command_success_nodata(si, _("Thank you for verifying your e-mail address! You have taken steps in ensuring that your registrations are not exploited."));
+       myuser_notice(nicksvs.nick, mu, confirm, entity(mu)->name);
+       if (!force)
+               myuser_notice(nicksvs.nick, mu, thanks);
+       if (si->smu != mu) {
+               command_success_nodata(si, confirm, entity(mu)->name);
+               if (!force)
+                       command_success_nodata(si, thanks);
+       }
+
        MOWGLI_ITER_FOREACH(n, mu->logins.head)
        {
                struct user *u = n->data;
@@ -67,7 +77,7 @@ ns_cmd_verify(struct sourceinfo *si, int parc, char *parv[])
                if (!strcasecmp(key, md->value))
                {
                        logcommand(si, CMDLOG_SET, "VERIFY:REGISTER: \2%s\2 (email: \2%s\2)", entity(mu)->name, mu->email);
-                       ns_verify_activate_account(si, mu);
+                       ns_verify_activate_account(si, mu, false);
                        return;
                }
 
@@ -118,7 +128,7 @@ ns_cmd_verify(struct sourceinfo *si, int parc, char *parv[])
 
                        if (metadata_find(mu, "private:verify:register:key"))
                        {
-                               ns_verify_activate_account(si, mu);
+                               ns_verify_activate_account(si, mu, false);
                        }
 
                        return;
@@ -168,7 +178,7 @@ ns_cmd_fverify(struct sourceinfo *si, int parc, char *parv[])
                }
 
                logcommand(si, CMDLOG_SET, "FVERIFY:REGISTER: \2%s\2 (email: \2%s\2)", entity(mu)->name, mu->email);
-               ns_verify_activate_account(si, mu);
+               ns_verify_activate_account(si, mu, true);
 
                return;
        }
@@ -194,7 +204,7 @@ ns_cmd_fverify(struct sourceinfo *si, int parc, char *parv[])
 
                if (metadata_find(mu, "private:verify:register:key"))
                {
-                       ns_verify_activate_account(si, mu);
+                       ns_verify_activate_account(si, mu, true);
                }
 
                return;