Extract EmailSingup::ensure_email_not_blocked()
This commit is contained in:
parent
3b3148fa6b
commit
832479a706
@ -61,9 +61,7 @@ pub struct NewEmailSignup<'a> {
|
|||||||
|
|
||||||
impl EmailSignup {
|
impl EmailSignup {
|
||||||
pub fn start(conn: &DbConn, email: &str) -> Result<Token> {
|
pub fn start(conn: &DbConn, email: &str) -> Result<Token> {
|
||||||
if let Some(x) = BlocklistedEmail::matches_blocklist(conn, email)? {
|
Self::ensure_email_not_blocked(conn, email)?;
|
||||||
return Err(Error::Blocklisted(x.notify_user, x.notification_text));
|
|
||||||
}
|
|
||||||
|
|
||||||
conn.transaction(|| {
|
conn.transaction(|| {
|
||||||
Self::ensure_user_not_exist_by_email(conn, email)?;
|
Self::ensure_user_not_exist_by_email(conn, email)?;
|
||||||
@ -95,9 +93,8 @@ impl EmailSignup {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn confirm(&self, conn: &DbConn) -> Result<()> {
|
pub fn confirm(&self, conn: &DbConn) -> Result<()> {
|
||||||
if let Some(x) = BlocklistedEmail::matches_blocklist(conn, &self.email)? {
|
Self::ensure_email_not_blocked(conn, &self.email)?;
|
||||||
return Err(Error::Blocklisted(x.notify_user, x.notification_text));
|
|
||||||
}
|
|
||||||
conn.transaction(|| {
|
conn.transaction(|| {
|
||||||
Self::ensure_user_not_exist_by_email(conn, &self.email)?;
|
Self::ensure_user_not_exist_by_email(conn, &self.email)?;
|
||||||
if self.expired() {
|
if self.expired() {
|
||||||
@ -109,9 +106,8 @@ impl EmailSignup {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn complete(&self, conn: &DbConn, username: String, password: String) -> Result<User> {
|
pub fn complete(&self, conn: &DbConn, username: String, password: String) -> Result<User> {
|
||||||
if let Some(x) = BlocklistedEmail::matches_blocklist(conn, &self.email)? {
|
Self::ensure_email_not_blocked(conn, &self.email)?;
|
||||||
return Err(Error::Blocklisted(x.notify_user, x.notification_text));
|
|
||||||
}
|
|
||||||
conn.transaction(|| {
|
conn.transaction(|| {
|
||||||
Self::ensure_user_not_exist_by_email(conn, &self.email)?;
|
Self::ensure_user_not_exist_by_email(conn, &self.email)?;
|
||||||
let user = NewUser::new_local(
|
let user = NewUser::new_local(
|
||||||
@ -133,6 +129,14 @@ impl EmailSignup {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn ensure_email_not_blocked(conn: &DbConn, email: &str) -> Result<()> {
|
||||||
|
if let Some(x) = BlocklistedEmail::matches_blocklist(conn, email)? {
|
||||||
|
Err(Error::Blocklisted(x.notify_user, x.notification_text))
|
||||||
|
} else {
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fn ensure_user_not_exist_by_email(conn: &DbConn, email: &str) -> Result<()> {
|
fn ensure_user_not_exist_by_email(conn: &DbConn, email: &str) -> Result<()> {
|
||||||
if User::email_used(conn, email)? {
|
if User::email_used(conn, email)? {
|
||||||
let _rows = Self::delete_existings_by_email(conn, email)?;
|
let _rows = Self::delete_existings_by_email(conn, email)?;
|
||||||
|
Loading…
Reference in New Issue
Block a user