mirror of
https://github.com/mCaptcha/mCaptcha.git
synced 2026-02-11 18:15:39 +00:00
Deploying to gh-pages from @ 697c6124c1f1fe7b4d7679bee1eb67532abbdb1f 🚀
This commit is contained in:
@@ -404,6 +404,166 @@
|
||||
<a href="#404" id="404">404</a>
|
||||
<a href="#405" id="405">405</a>
|
||||
<a href="#406" id="406">406</a>
|
||||
<a href="#407" id="407">407</a>
|
||||
<a href="#408" id="408">408</a>
|
||||
<a href="#409" id="409">409</a>
|
||||
<a href="#410" id="410">410</a>
|
||||
<a href="#411" id="411">411</a>
|
||||
<a href="#412" id="412">412</a>
|
||||
<a href="#413" id="413">413</a>
|
||||
<a href="#414" id="414">414</a>
|
||||
<a href="#415" id="415">415</a>
|
||||
<a href="#416" id="416">416</a>
|
||||
<a href="#417" id="417">417</a>
|
||||
<a href="#418" id="418">418</a>
|
||||
<a href="#419" id="419">419</a>
|
||||
<a href="#420" id="420">420</a>
|
||||
<a href="#421" id="421">421</a>
|
||||
<a href="#422" id="422">422</a>
|
||||
<a href="#423" id="423">423</a>
|
||||
<a href="#424" id="424">424</a>
|
||||
<a href="#425" id="425">425</a>
|
||||
<a href="#426" id="426">426</a>
|
||||
<a href="#427" id="427">427</a>
|
||||
<a href="#428" id="428">428</a>
|
||||
<a href="#429" id="429">429</a>
|
||||
<a href="#430" id="430">430</a>
|
||||
<a href="#431" id="431">431</a>
|
||||
<a href="#432" id="432">432</a>
|
||||
<a href="#433" id="433">433</a>
|
||||
<a href="#434" id="434">434</a>
|
||||
<a href="#435" id="435">435</a>
|
||||
<a href="#436" id="436">436</a>
|
||||
<a href="#437" id="437">437</a>
|
||||
<a href="#438" id="438">438</a>
|
||||
<a href="#439" id="439">439</a>
|
||||
<a href="#440" id="440">440</a>
|
||||
<a href="#441" id="441">441</a>
|
||||
<a href="#442" id="442">442</a>
|
||||
<a href="#443" id="443">443</a>
|
||||
<a href="#444" id="444">444</a>
|
||||
<a href="#445" id="445">445</a>
|
||||
<a href="#446" id="446">446</a>
|
||||
<a href="#447" id="447">447</a>
|
||||
<a href="#448" id="448">448</a>
|
||||
<a href="#449" id="449">449</a>
|
||||
<a href="#450" id="450">450</a>
|
||||
<a href="#451" id="451">451</a>
|
||||
<a href="#452" id="452">452</a>
|
||||
<a href="#453" id="453">453</a>
|
||||
<a href="#454" id="454">454</a>
|
||||
<a href="#455" id="455">455</a>
|
||||
<a href="#456" id="456">456</a>
|
||||
<a href="#457" id="457">457</a>
|
||||
<a href="#458" id="458">458</a>
|
||||
<a href="#459" id="459">459</a>
|
||||
<a href="#460" id="460">460</a>
|
||||
<a href="#461" id="461">461</a>
|
||||
<a href="#462" id="462">462</a>
|
||||
<a href="#463" id="463">463</a>
|
||||
<a href="#464" id="464">464</a>
|
||||
<a href="#465" id="465">465</a>
|
||||
<a href="#466" id="466">466</a>
|
||||
<a href="#467" id="467">467</a>
|
||||
<a href="#468" id="468">468</a>
|
||||
<a href="#469" id="469">469</a>
|
||||
<a href="#470" id="470">470</a>
|
||||
<a href="#471" id="471">471</a>
|
||||
<a href="#472" id="472">472</a>
|
||||
<a href="#473" id="473">473</a>
|
||||
<a href="#474" id="474">474</a>
|
||||
<a href="#475" id="475">475</a>
|
||||
<a href="#476" id="476">476</a>
|
||||
<a href="#477" id="477">477</a>
|
||||
<a href="#478" id="478">478</a>
|
||||
<a href="#479" id="479">479</a>
|
||||
<a href="#480" id="480">480</a>
|
||||
<a href="#481" id="481">481</a>
|
||||
<a href="#482" id="482">482</a>
|
||||
<a href="#483" id="483">483</a>
|
||||
<a href="#484" id="484">484</a>
|
||||
<a href="#485" id="485">485</a>
|
||||
<a href="#486" id="486">486</a>
|
||||
<a href="#487" id="487">487</a>
|
||||
<a href="#488" id="488">488</a>
|
||||
<a href="#489" id="489">489</a>
|
||||
<a href="#490" id="490">490</a>
|
||||
<a href="#491" id="491">491</a>
|
||||
<a href="#492" id="492">492</a>
|
||||
<a href="#493" id="493">493</a>
|
||||
<a href="#494" id="494">494</a>
|
||||
<a href="#495" id="495">495</a>
|
||||
<a href="#496" id="496">496</a>
|
||||
<a href="#497" id="497">497</a>
|
||||
<a href="#498" id="498">498</a>
|
||||
<a href="#499" id="499">499</a>
|
||||
<a href="#500" id="500">500</a>
|
||||
<a href="#501" id="501">501</a>
|
||||
<a href="#502" id="502">502</a>
|
||||
<a href="#503" id="503">503</a>
|
||||
<a href="#504" id="504">504</a>
|
||||
<a href="#505" id="505">505</a>
|
||||
<a href="#506" id="506">506</a>
|
||||
<a href="#507" id="507">507</a>
|
||||
<a href="#508" id="508">508</a>
|
||||
<a href="#509" id="509">509</a>
|
||||
<a href="#510" id="510">510</a>
|
||||
<a href="#511" id="511">511</a>
|
||||
<a href="#512" id="512">512</a>
|
||||
<a href="#513" id="513">513</a>
|
||||
<a href="#514" id="514">514</a>
|
||||
<a href="#515" id="515">515</a>
|
||||
<a href="#516" id="516">516</a>
|
||||
<a href="#517" id="517">517</a>
|
||||
<a href="#518" id="518">518</a>
|
||||
<a href="#519" id="519">519</a>
|
||||
<a href="#520" id="520">520</a>
|
||||
<a href="#521" id="521">521</a>
|
||||
<a href="#522" id="522">522</a>
|
||||
<a href="#523" id="523">523</a>
|
||||
<a href="#524" id="524">524</a>
|
||||
<a href="#525" id="525">525</a>
|
||||
<a href="#526" id="526">526</a>
|
||||
<a href="#527" id="527">527</a>
|
||||
<a href="#528" id="528">528</a>
|
||||
<a href="#529" id="529">529</a>
|
||||
<a href="#530" id="530">530</a>
|
||||
<a href="#531" id="531">531</a>
|
||||
<a href="#532" id="532">532</a>
|
||||
<a href="#533" id="533">533</a>
|
||||
<a href="#534" id="534">534</a>
|
||||
<a href="#535" id="535">535</a>
|
||||
<a href="#536" id="536">536</a>
|
||||
<a href="#537" id="537">537</a>
|
||||
<a href="#538" id="538">538</a>
|
||||
<a href="#539" id="539">539</a>
|
||||
<a href="#540" id="540">540</a>
|
||||
<a href="#541" id="541">541</a>
|
||||
<a href="#542" id="542">542</a>
|
||||
<a href="#543" id="543">543</a>
|
||||
<a href="#544" id="544">544</a>
|
||||
<a href="#545" id="545">545</a>
|
||||
<a href="#546" id="546">546</a>
|
||||
<a href="#547" id="547">547</a>
|
||||
<a href="#548" id="548">548</a>
|
||||
<a href="#549" id="549">549</a>
|
||||
<a href="#550" id="550">550</a>
|
||||
<a href="#551" id="551">551</a>
|
||||
<a href="#552" id="552">552</a>
|
||||
<a href="#553" id="553">553</a>
|
||||
<a href="#554" id="554">554</a>
|
||||
<a href="#555" id="555">555</a>
|
||||
<a href="#556" id="556">556</a>
|
||||
<a href="#557" id="557">557</a>
|
||||
<a href="#558" id="558">558</a>
|
||||
<a href="#559" id="559">559</a>
|
||||
<a href="#560" id="560">560</a>
|
||||
<a href="#561" id="561">561</a>
|
||||
<a href="#562" id="562">562</a>
|
||||
<a href="#563" id="563">563</a>
|
||||
<a href="#564" id="564">564</a>
|
||||
<a href="#565" id="565">565</a>
|
||||
<a href="#566" id="566">566</a>
|
||||
</pre></div><pre class="rust"><code><span class="comment">// Copyright (C) 2022 Aravinth Manivannan <realaravinth@batsense.net>
|
||||
// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
|
||||
//
|
||||
@@ -562,6 +722,33 @@
|
||||
|
||||
];
|
||||
|
||||
|
||||
<span class="kw">const </span>DEPRECATED_ENV_VARS: [(<span class="kw-2">&</span>str, <span class="kw-2">&</span>str); <span class="number">23</span>] = [
|
||||
(<span class="string">"debug"</span>,<span class="string">"MCAPTCHA_DEBUG"</span>),
|
||||
(<span class="string">"commercial"</span>,<span class="string">"MCAPTCHA_COMMERCIAL"</span>),
|
||||
(<span class="string">"source_code"</span>, <span class="string">"MCAPTCHA_SOURCE_CODE"</span>),
|
||||
(<span class="string">"allow_registration"</span>, <span class="string">"MCAPTCHA_ALLOW_REGISTRATION"</span>),
|
||||
(<span class="string">"allow_demo"</span>, <span class="string">"MCAPTCHA_ALLOW_DEMO"</span>),
|
||||
(<span class="string">"redis.pool"</span>, <span class="string">"MCAPTCHA_REDIS_POOL"</span>),
|
||||
(<span class="string">"redis.url"</span>, <span class="string">"MCAPTCHA_REDIS_URL"</span>),
|
||||
(<span class="string">"server.port"</span>, <span class="string">"MCAPTCHA_SERVER_PORT"</span>),
|
||||
(<span class="string">"server.ip"</span>, <span class="string">"MCAPTCHA_SERVER_IP"</span>),
|
||||
(<span class="string">"server.domain"</span>, <span class="string">"MCAPTCHA_SERVER_DOMAIN"</span>),
|
||||
(<span class="string">"server.cookie_secret"</span>, <span class="string">"MCAPTCHA_SERVER_COOKIE_SECRET"</span>),
|
||||
(<span class="string">"server.proxy_has_tls"</span>, <span class="string">"MCAPTCHA_SERVER_PROXY_HAS_TLS"</span>),
|
||||
(<span class="string">"captcha.salt"</span>, <span class="string">"MCAPTCHA_CAPTCHA_SALT"</span>),
|
||||
(<span class="string">"captcha.gc"</span>, <span class="string">"MCAPTCHA_CAPTCHA_GC"</span>),
|
||||
(<span class="string">"captcha.default_difficulty_strategy.avg_traffic_difficulty"</span>, <span class="string">"MCAPTCHA_CAPTCHA_AVG_TRAFFIC_DIFFICULTY"</span>),
|
||||
(<span class="string">"captcha.default_difficulty_strategy.peak_sustainable_traffic_difficulty"</span>, <span class="string">"MCAPTCHA_CAPTCHA_PEAK_TRAFFIC_DIFFICULTY"</span>),
|
||||
(<span class="string">"captcha.default_difficulty_strategy.broke_my_site_traffic_difficulty"</span>, <span class="string">"MCAPTCHA_CAPTCHA_BROKE_MY_SITE_TRAFFIC"</span>),
|
||||
(<span class="string">"smtp.from"</span>, <span class="string">"MCAPTCHA_SMTP_FROM"</span>),
|
||||
(<span class="string">"smtp.reply"</span>, <span class="string">"MCAPTCHA_SMTP_REPLY_TO"</span>),
|
||||
(<span class="string">"smtp.url"</span>, <span class="string">"MCAPTCHA_SMTP_URL"</span>),
|
||||
(<span class="string">"smtp.username"</span>, <span class="string">"MCAPTCHA_SMTP_USERNAME"</span>),
|
||||
(<span class="string">"smtp.password"</span>, <span class="string">"MCAPTCHA_SMTP_PASSWORD"</span>),
|
||||
(<span class="string">"smtp.port"</span>, <span class="string">"MCAPTCHA_SMTP_PORT"</span>),
|
||||
];
|
||||
|
||||
<span class="attr">#[cfg(not(tarpaulin_include))]
|
||||
</span><span class="kw">impl </span>Settings {
|
||||
<span class="kw">pub fn </span>new() -> <span class="prelude-ty">Result</span><<span class="self">Self</span>, ConfigError> {
|
||||
@@ -616,6 +803,17 @@
|
||||
}
|
||||
|
||||
<span class="kw">fn </span>env_override(<span class="kw-2">mut </span>s: ConfigBuilder<DefaultState>) -> ConfigBuilder<DefaultState> {
|
||||
|
||||
<span class="kw">for </span>(parameter, env_var_name) <span class="kw">in </span>DEPRECATED_ENV_VARS.iter() {
|
||||
<span class="kw">if let </span><span class="prelude-val">Ok</span>(val) = env::var(env_var_name) {
|
||||
<span class="macro">log::warn!</span>(
|
||||
<span class="string">"Found {env_var_name}. {env_var_name} will be deprecated soon. Please see https://github.com/mCaptcha/mCaptcha/blob/master/docs/CONFIGURATION.md for latest environment variable names"
|
||||
</span>);
|
||||
s = s.set_override(parameter, val).unwrap();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
<span class="kw">for </span>(parameter, env_var_name) <span class="kw">in </span>ENV_VAR_CONFIG.iter() {
|
||||
<span class="kw">if let </span><span class="prelude-val">Ok</span>(val) = env::var(env_var_name) {
|
||||
<span class="macro">log::debug!</span>(
|
||||
@@ -645,8 +843,10 @@
|
||||
|
||||
<span class="kw">use super</span>::<span class="kw-2">*</span>;
|
||||
|
||||
|
||||
|
||||
<span class="attr">#[test]
|
||||
</span><span class="kw">fn </span>env_override_works() {
|
||||
</span><span class="kw">fn </span>deprecated_env_override_works() {
|
||||
<span class="kw">use </span><span class="kw">crate</span>::tests::get_settings;
|
||||
<span class="kw">let </span>init_settings = get_settings();
|
||||
<span class="comment">// so that it can be tested outside the macro (helper) too
|
||||
@@ -655,6 +855,126 @@
|
||||
<span class="macro">macro_rules! </span>helper {
|
||||
|
||||
|
||||
(<span class="macro-nonterminal">$env</span>:expr, <span class="macro-nonterminal">$val</span>:expr, <span class="macro-nonterminal">$val_typed</span>:expr, $(<span class="macro-nonterminal">$param</span>:ident).+) => {
|
||||
<span class="macro">println!</span>(<span class="string">"Setting env var {} to {} for test"</span>, <span class="macro-nonterminal">$env</span>, <span class="macro-nonterminal">$val</span>);
|
||||
env::set_var(<span class="macro-nonterminal">$env</span>, <span class="macro-nonterminal">$val</span>);
|
||||
new_settings = get_settings();
|
||||
<span class="macro">assert_eq!</span>(new_settings.$(<span class="macro-nonterminal">$param</span>).+, <span class="macro-nonterminal">$val_typed</span>);
|
||||
<span class="macro">assert_ne!</span>(new_settings.$(<span class="macro-nonterminal">$param</span>).+, init_settings.$(<span class="macro-nonterminal">$param</span>).+);
|
||||
env::remove_var(<span class="macro-nonterminal">$env</span>);
|
||||
};
|
||||
|
||||
|
||||
(<span class="macro-nonterminal">$env</span>:expr, <span class="macro-nonterminal">$val</span>:expr, $(<span class="macro-nonterminal">$param</span>:ident).+) => {
|
||||
<span class="macro">helper!</span>(<span class="macro-nonterminal">$env</span>, <span class="macro-nonterminal">$val</span>.to_string(), <span class="macro-nonterminal">$val</span>, $(<span class="macro-nonterminal">$param</span>).+);
|
||||
};
|
||||
}
|
||||
|
||||
<span class="comment">/* top level */
|
||||
</span><span class="macro">helper!</span>(<span class="string">"MCAPTCHA_DEBUG"</span>, !init_settings.debug, debug);
|
||||
<span class="macro">helper!</span>(<span class="string">"MCAPTCHA_COMMERCIAL"</span>, !init_settings.commercial, commercial);
|
||||
<span class="macro">helper!</span>(<span class="string">"MCAPTCHA_ALLOW_REGISTRATION"</span>, !init_settings.allow_registration, allow_registration);
|
||||
<span class="macro">helper!</span>(<span class="string">"MCAPTCHA_ALLOW_DEMO"</span>, !init_settings.allow_demo, allow_demo);
|
||||
|
||||
<span class="comment">/* database_type */
|
||||
|
||||
/* redis.url */
|
||||
</span><span class="kw">let </span>env = <span class="string">"MCAPTCHA_REDIS_URL"</span>;
|
||||
<span class="kw">let </span>val = <span class="string">"redis://redis.example.org"</span>;
|
||||
<span class="macro">println!</span>(<span class="string">"Setting env var {} to {} for test"</span>, env, val);
|
||||
env::set_var(env, val);
|
||||
new_settings = get_settings();
|
||||
<span class="macro">assert_eq!</span>(new_settings.redis.as_ref().unwrap().url, val);
|
||||
<span class="macro">assert_ne!</span>(
|
||||
new_settings.redis.as_ref().unwrap().url,
|
||||
init_settings.redis.as_ref().unwrap().url
|
||||
);
|
||||
env::remove_var(env);
|
||||
|
||||
<span class="comment">/* redis.pool */
|
||||
</span><span class="kw">let </span>env = <span class="string">"MCAPTCHA_REDIS_POOL"</span>;
|
||||
<span class="kw">let </span>val = <span class="number">999</span>;
|
||||
<span class="macro">println!</span>(<span class="string">"Setting env var {} to {} for test"</span>, env, val);
|
||||
env::set_var(env, val.to_string());
|
||||
new_settings = get_settings();
|
||||
<span class="macro">assert_eq!</span>(new_settings.redis.as_ref().unwrap().pool, val);
|
||||
<span class="macro">assert_ne!</span>(
|
||||
new_settings.redis.as_ref().unwrap().pool,
|
||||
init_settings.redis.as_ref().unwrap().pool
|
||||
);
|
||||
env::remove_var(env);
|
||||
|
||||
<span class="macro">helper!</span>(<span class="string">"PORT"</span>, <span class="number">0</span>, server.port);
|
||||
<span class="macro">helper!</span>(<span class="string">"MCAPTCHA_SERVER_DOMAIN"</span>, <span class="string">"example.org"</span>, server.domain);
|
||||
<span class="macro">helper!</span>(
|
||||
<span class="string">"MCAPTCHA_SERVER_COOKIE_SECRET"</span>,
|
||||
<span class="string">"dafasdfsdf"</span>,
|
||||
server.cookie_secret
|
||||
);
|
||||
<span class="macro">helper!</span>(<span class="string">"MCAPTCHA_SERVER_IP"</span>, <span class="string">"9.9.9.9"</span>, server.ip);
|
||||
<span class="macro">helper!</span>(<span class="string">"MCAPTCHA_SERVER_PROXY_HAS_TLS"</span>, <span class="bool-val">true</span>, server.proxy_has_tls);
|
||||
|
||||
<span class="comment">/* captcha */
|
||||
|
||||
</span><span class="macro">helper!</span>(<span class="string">"MCAPTCHA_CAPTCHA_SALT"</span>, <span class="string">"foobarasdfasdf"</span>, captcha.salt);
|
||||
<span class="macro">helper!</span>(<span class="string">"MCAPTCHA_CAPTCHA_GC"</span>, <span class="number">500</span>, captcha.gc);
|
||||
<span class="macro">helper!</span>(
|
||||
<span class="string">"MCAPTCHA_captcha_RUNNERS"</span>,
|
||||
<span class="string">"500"</span>,
|
||||
<span class="prelude-val">Some</span>(<span class="number">500</span>),
|
||||
captcha.runners
|
||||
);
|
||||
|
||||
<span class="macro">helper!</span>(
|
||||
<span class="string">"MCAPTCHA_CAPTCHA_AVG_TRAFFIC_DIFFICULTY"</span>,
|
||||
<span class="number">999</span>,
|
||||
captcha.default_difficulty_strategy.avg_traffic_difficulty
|
||||
);
|
||||
<span class="macro">helper!</span>(<span class="string">"MCAPTCHA_CAPTCHA_PEAK_TRAFFIC_DIFFICULTY"</span>, <span class="number">999 </span>, captcha.default_difficulty_strategy.peak_sustainable_traffic_difficulty);
|
||||
<span class="macro">helper!</span>(<span class="string">"MCAPTCHA_CAPTCHA_BROKE_MY_SITE_TRAFFIC"</span>, <span class="number">999 </span>, captcha.default_difficulty_strategy.broke_my_site_traffic_difficulty);
|
||||
|
||||
<span class="comment">/* SMTP */
|
||||
|
||||
</span><span class="kw">let </span>vals = [
|
||||
<span class="string">"MCAPTCHA_SMTP_FROM"</span>,
|
||||
<span class="string">"MCAPTCHA_SMTP_REPLY_TO"</span>,
|
||||
<span class="string">"MCAPTCHA_SMTP_URL"</span>,
|
||||
<span class="string">"MCAPTCHA_SMTP_USERNAME"</span>,
|
||||
<span class="string">"MCAPTCHA_SMTP_PASSWORD"</span>,
|
||||
<span class="string">"MCAPTCHA_SMTP_PORT"</span>,
|
||||
];
|
||||
<span class="kw">for </span>env <span class="kw">in </span>vals.iter() {
|
||||
<span class="macro">println!</span>(<span class="string">"Setting env var {} to {} for test"</span>, env, env);
|
||||
env::set_var(env, env);
|
||||
}
|
||||
|
||||
<span class="kw">let </span>port = <span class="number">9999</span>;
|
||||
env::set_var(<span class="string">"MCAPTCHA_SMTP_PORT"</span>, port.to_string());
|
||||
|
||||
new_settings = get_settings();
|
||||
<span class="kw">let </span>smtp_new = new_settings.smtp.as_ref().unwrap();
|
||||
<span class="kw">let </span>smtp_old = init_settings.smtp.as_ref().unwrap();
|
||||
<span class="macro">assert_eq!</span>(smtp_new.from, <span class="string">"MCAPTCHA_SMTP_FROM"</span>);
|
||||
<span class="macro">assert_eq!</span>(smtp_new.reply, <span class="string">"MCAPTCHA_SMTP_REPLY_TO"</span>);
|
||||
<span class="macro">assert_eq!</span>(smtp_new.username, <span class="string">"MCAPTCHA_SMTP_USERNAME"</span>);
|
||||
<span class="macro">assert_eq!</span>(smtp_new.password, <span class="string">"MCAPTCHA_SMTP_PASSWORD"</span>);
|
||||
<span class="macro">assert_eq!</span>(smtp_new.port, port);
|
||||
<span class="macro">assert_ne!</span>(smtp_new, smtp_old);
|
||||
|
||||
<span class="kw">for </span>env <span class="kw">in </span>vals.iter() {
|
||||
env::remove_var(env);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
<span class="attr">#[test]
|
||||
</span><span class="kw">fn </span>env_override_works() {
|
||||
<span class="kw">use </span><span class="kw">crate</span>::tests::get_settings;
|
||||
<span class="kw">let </span>init_settings = get_settings();
|
||||
<span class="comment">// so that it can be tested outside the macro (helper) too
|
||||
</span><span class="kw">let </span><span class="kw-2">mut </span>new_settings;
|
||||
|
||||
<span class="macro">macro_rules! </span>helper {
|
||||
|
||||
|
||||
(<span class="macro-nonterminal">$env</span>:expr, <span class="macro-nonterminal">$val</span>:expr, <span class="macro-nonterminal">$val_typed</span>:expr, $(<span class="macro-nonterminal">$param</span>:ident).+) => {
|
||||
|
||||
Reference in New Issue
Block a user