|
@@ -164,7 +164,17 @@ SAREGISTER registers an account on someone else's behalf.
|
164
|
164
|
This is for use in configurations that require SASL for all connections;
|
165
|
165
|
an administrator can set use this command to set up user accounts.`,
|
166
|
166
|
helpShort: `$bSAREGISTER$b registers an account on someone else's behalf.`,
|
167
|
|
- enabled: servCmdRequiresAuthEnabled,
|
|
167
|
+ enabled: servCmdRequiresAuthEnabled, // deliberate
|
|
168
|
+ capabs: []string{"accreg"},
|
|
169
|
+ minParams: 1,
|
|
170
|
+ },
|
|
171
|
+ "saverify": {
|
|
172
|
+ handler: nsSaverifyHandler,
|
|
173
|
+ help: `Syntax: $bSAVERIFY <username>$b
|
|
174
|
+
|
|
175
|
+SAVERIFY manually verifies an account that is pending verification.`,
|
|
176
|
+ helpShort: `$bSAREGISTER$b registers an account on someone else's behalf.`,
|
|
177
|
+ enabled: servCmdRequiresAuthEnabled, // deliberate
|
168
|
178
|
capabs: []string{"accreg"},
|
169
|
179
|
minParams: 1,
|
170
|
180
|
},
|
|
@@ -996,7 +1006,7 @@ func nsRegisterHandler(service *ircService, server *Server, client *Client, comm
|
996
|
1006
|
err := server.accounts.Register(client, account, callbackNamespace, callbackValue, passphrase, rb.session.certfp)
|
997
|
1007
|
if err == nil {
|
998
|
1008
|
if callbackNamespace == "*" {
|
999
|
|
- err = server.accounts.Verify(client, account, "")
|
|
1009
|
+ err = server.accounts.Verify(client, account, "", true)
|
1000
|
1010
|
if err == nil && fixupNickEqualsAccount(client, rb, config, service.prefix) {
|
1001
|
1011
|
sendSuccessfulRegResponse(service, client, rb)
|
1002
|
1012
|
}
|
|
@@ -1038,6 +1048,16 @@ func nsSaregisterHandler(service *ircService, server *Server, client *Client, co
|
1038
|
1048
|
}
|
1039
|
1049
|
}
|
1040
|
1050
|
|
|
1051
|
+func nsSaverifyHandler(service *ircService, server *Server, client *Client, command string, params []string, rb *ResponseBuffer) {
|
|
1052
|
+ account := params[0]
|
|
1053
|
+ err := server.accounts.Verify(nil, account, "", true)
|
|
1054
|
+ if err == nil {
|
|
1055
|
+ service.Notice(rb, fmt.Sprintf(client.t("Successfully verified account %s"), account))
|
|
1056
|
+ } else {
|
|
1057
|
+ service.Notice(rb, fmt.Sprintf(client.t("Failed to verify account %s: %v"), account, err.Error()))
|
|
1058
|
+ }
|
|
1059
|
+}
|
|
1060
|
+
|
1041
|
1061
|
func nsUnregisterHandler(service *ircService, server *Server, client *Client, command string, params []string, rb *ResponseBuffer) {
|
1042
|
1062
|
erase := command == "erase"
|
1043
|
1063
|
|
|
@@ -1106,7 +1126,7 @@ func nsUnregisterHandler(service *ircService, server *Server, client *Client, co
|
1106
|
1126
|
|
1107
|
1127
|
func nsVerifyHandler(service *ircService, server *Server, client *Client, command string, params []string, rb *ResponseBuffer) {
|
1108
|
1128
|
username, code := params[0], params[1]
|
1109
|
|
- err := server.accounts.Verify(client, username, code)
|
|
1129
|
+ err := server.accounts.Verify(client, username, code, false)
|
1110
|
1130
|
|
1111
|
1131
|
var errorMessage string
|
1112
|
1132
|
if err != nil {
|