Skip to content

Commit b43145a

Browse files
committed
Add premium users
1 parent 25a86db commit b43145a

File tree

3 files changed

+26
-3
lines changed

3 files changed

+26
-3
lines changed

.gitignore

-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
11
/target
22
.env.local
3-
banned_domains.txt
4-
banned_users.txt
53
/faucet_config

src/auth.rs

+22
Original file line numberDiff line numberDiff line change
@@ -108,11 +108,33 @@ fn get_whitelisted_users() -> Vec<String> {
108108
whitelisted_users
109109
}
110110

111+
fn get_premium_users() -> Vec<String> {
112+
let mut premium_users = vec![];
113+
let file = std::fs::read_to_string("faucet_config/premium_users.txt");
114+
if let Ok(file) = file {
115+
for line in file.lines() {
116+
let line = line.trim();
117+
if !line.is_empty() {
118+
premium_users.push(line.to_string());
119+
}
120+
}
121+
}
122+
premium_users
123+
}
124+
125+
pub fn is_premium(email: &String) -> bool {
126+
let premium_users = get_premium_users();
127+
premium_users.contains(email)
128+
}
129+
111130
pub fn is_banned(email: &String) -> bool {
112131
let whitelisted_users = get_whitelisted_users();
113132
if whitelisted_users.contains(email) {
114133
return false;
115134
}
135+
if is_premium(email) {
136+
return false;
137+
}
116138
let domains = banned_domains();
117139
let user_host = email.split('@').last().unwrap_or("");
118140
if domains.contains(&user_host.to_lowercase()) {

src/main.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ use tokio::sync::oneshot;
2424
use tonic_openssl_lnd::LndLightningClient;
2525
use tower_http::cors::{AllowMethods, Any, CorsLayer};
2626

27-
use crate::auth::{auth_middleware, AuthState, AuthUser, GithubCallback};
27+
use crate::auth::{auth_middleware, is_premium, AuthState, AuthUser, GithubCallback};
2828
use crate::nostr_dms::listen_to_nostr_dms;
2929
use crate::payments::PaymentsByIp;
3030
use bolt11::{request_bolt11, Bolt11Request, Bolt11Response};
@@ -288,6 +288,7 @@ async fn onchain_handler(
288288
.payments
289289
.verify_payments(x_forwarded_for, Some(&address_str), Some(&user))
290290
.await
291+
&& !is_premium(&user.username)
291292
{
292293
return Err(AppError::new("Too many payments"));
293294
}
@@ -314,6 +315,7 @@ async fn lightning_handler(
314315
.payments
315316
.verify_payments(x_forwarded_for, None, Some(&user))
316317
.await
318+
&& !is_premium(&user.username)
317319
{
318320
return Err(AppError::new("Too many payments"));
319321
}
@@ -396,6 +398,7 @@ async fn channel_handler(
396398
.payments
397399
.verify_payments(x_forwarded_for, None, Some(&user))
398400
.await
401+
&& !is_premium(&user.username)
399402
{
400403
return Err(AppError::new("Too many payments"));
401404
}

0 commit comments

Comments
 (0)