| | @@ -529,10 +529,34 @@ |
| 529 | 529 | return Th_WrongNumArgs(interp, "verifyCsrf"); |
| 530 | 530 | } |
| 531 | 531 | login_verify_csrf_secret(); |
| 532 | 532 | return TH_OK; |
| 533 | 533 | } |
| 534 | + |
| 535 | +/* |
| 536 | +** TH1 command: verifyLogin |
| 537 | +** |
| 538 | +** Returns non-zero if the specified user name and password represent a |
| 539 | +** valid login for the repository. |
| 540 | +*/ |
| 541 | +static int verifyLoginCmd( |
| 542 | + Th_Interp *interp, |
| 543 | + void *p, |
| 544 | + int argc, |
| 545 | + const char **argv, |
| 546 | + int *argl |
| 547 | +){ |
| 548 | + const char *zUser; |
| 549 | + const char *zPass; |
| 550 | + if( argc!=3 ){ |
| 551 | + return Th_WrongNumArgs(interp, "verifyLogin userName password"); |
| 552 | + } |
| 553 | + zUser = argv[1]; |
| 554 | + zPass = argv[2]; |
| 555 | + Th_SetResultInt(interp, login_search_uid(&zUser, zPass) != 0); |
| 556 | + return TH_OK; |
| 557 | +} |
| 534 | 558 | |
| 535 | 559 | /* |
| 536 | 560 | ** TH1 command: markdown STRING |
| 537 | 561 | ** |
| 538 | 562 | ** Renders the input string as markdown. The result is a two-element list. |
| | @@ -2111,10 +2135,11 @@ |
| 2111 | 2135 | {"trace", traceCmd, 0}, |
| 2112 | 2136 | {"stime", stimeCmd, 0}, |
| 2113 | 2137 | {"unversioned", unversionedCmd, 0}, |
| 2114 | 2138 | {"utime", utimeCmd, 0}, |
| 2115 | 2139 | {"verifyCsrf", verifyCsrfCmd, 0}, |
| 2140 | + {"verifyLogin", verifyLoginCmd, 0}, |
| 2116 | 2141 | {"wiki", wikiCmd, (void*)&aFlags[0]}, |
| 2117 | 2142 | {0, 0, 0} |
| 2118 | 2143 | }; |
| 2119 | 2144 | if( g.thTrace ){ |
| 2120 | 2145 | Th_Trace("th1-init 0x%x => 0x%x<br />\n", g.th1Flags, flags); |
| 2121 | 2146 | |