]> jfr.im git - irc/atheme/atheme.git/commitdiff
Call user_can_login hooks when logging in via certfp too.
authormniip <redacted>
Sat, 5 Mar 2016 07:38:54 +0000 (10:38 +0300)
committerMax Teufel <redacted>
Sat, 5 Mar 2016 07:56:47 +0000 (08:56 +0100)
libathemecore/services.c

index 0a546e23cbdd5c70830540d3b39cceca4d7e4427..cdb51176a977d288626948ba865c86cbcb5797a7 100644 (file)
@@ -258,6 +258,8 @@ void services_init(void)
                        kill_id_sts(NULL, svs->nick, "Attempt to use service nick");
                introduce_nick(svs->me);
        }
+
+       hook_add_event("user_can_login");
 }
 
 void joinall(const char *name)
@@ -575,6 +577,7 @@ void handle_certfp(sourceinfo_t *si, user_t *u, const char *certfp)
        myuser_t *mu;
        mycertfp_t *mcfp;
        service_t *svs;
+       hook_user_login_check_t req;
 
        free(u->certfp);
        u->certfp = sstrdup(certfp);
@@ -603,6 +606,15 @@ void handle_certfp(sourceinfo_t *si, user_t *u, const char *certfp)
                return;
        }
 
+       req.si = si;
+       req.mu = mu;
+       req.allowed = true;
+       hook_call_user_can_login(&req);
+       if (!req.allowed)
+       {
+               return;
+       }
+
        notice(svs->me->nick, u->nick, nicksvs.no_nick_ownership ? _("You are now logged in as \2%s\2.") : _("You are now identified for \2%s\2."), entity(mu)->name);
 
        myuser_login(svs, u, mu, true);