+3
README.md
+3
README.md
···
105
105
in the pds gateekeper container and it will use them in place of the default ones. Just make sure ot keep the names the
106
106
same.
107
107
108
+
`GATEKEEPER_TWO_FACTOR_EMAIL_SUBJECT` - Subject of the email sent to the user when they turn on 2FA. Defaults to
109
+
`Sign in to Bluesky`
110
+
108
111
`PDS_BASE_URL` - Base url of the PDS. You most likely want `https://localhost:3000` which is also the default
109
112
110
113
`GATEKEEPER_HOST` - Host for pds gatekeeper. Defaults to `127.0.0.1`
+1
-1
justfile
+1
-1
justfile
+6
-5
src/helpers.rs
+6
-5
src/helpers.rs
···
15
15
use serde_json::{Map, Value};
16
16
use sha2::{Digest, Sha256};
17
17
use sqlx::SqlitePool;
18
+
use std::env;
18
19
use tracing::{error, log};
19
20
20
21
///Used to generate the email 2fa code
···
134
135
full_code.push(UPPERCASE_BASE32_CHARS[idx] as char);
135
136
}
136
137
137
-
//The PDS implementation creates in lowercase, then converts to uppercase.
138
-
//Just going a head and doing uppercase here.
139
-
let slice_one = &full_code[0..5].to_ascii_uppercase();
140
-
let slice_two = &full_code[5..10].to_ascii_uppercase();
138
+
let slice_one = &full_code[0..5];
139
+
let slice_two = &full_code[5..10];
141
140
format!("{slice_one}-{slice_two}")
142
141
}
143
142
···
334
333
let email_body = state
335
334
.template_engine
336
335
.render("two_factor_code.hbs", email_data)?;
336
+
let email_subject = env::var("GATEKEEPER_TWO_FACTOR_EMAIL_SUBJECT")
337
+
.unwrap_or("Sign in to Bluesky".to_string());
337
338
338
339
let email_message = Message::builder()
339
340
//TODO prob get the proper type in the state
340
341
.from(state.mailer_from.parse()?)
341
342
.to(email.parse()?)
342
-
.subject("Sign in to Bluesky")
343
+
.subject(email_subject)
343
344
.multipart(
344
345
MultiPart::alternative() // This is composed of two parts.
345
346
.singlepart(