For a University community for example.

  • riccardo
    link
    fedilink
    4
    edit-2
    4 years ago

    Total noob here but by browsing the sourcecode, I’ve found the function/regex that checks for the email correctness (permalink). I guess that by looking at the existing code and at the is_email_regex function, you can rather easily add an additional check to make sure the email is bound to the domain you want. No idea if this function/regex is the one the code actually tests email addresses against to check whether they are valid or not

    Edit apparently that function is not used in the registration process, but in the login one. I’m totally cluelessly wandering across the code so someone please correct me if I’m wrong. Apparently the registration process is handled here. I think that if you add an additional check on the email address here, you can obtain the result you’re looking for

    Something like:

    lazy_static! {
      static ref UNI_REGEX: Regex =
        Regex::new(r"^.+@somedomain$").unwrap();
    }
    
    pub fn is_uni_regex(test: &str) -> bool {
      UNI_REGEX.is_match(test)
    }
    

    and then in the file I linked above:

    if is_uni_regex(data.email) {
      return Err(APIError::err("unauthorized_email_domain").into());
    }
    

    …and you’d have to add a new unauthorized_email_domain key to the translations file. Again I hope I’m stressing it enough, do not trust me. There are probably more correct or consistent ways of doing it. I’m just trying to figure out by myself lol

    • @usr@lemmy.mlOP
      link
      fedilink
      44 years ago

      Thanks! Yeah, I figured I would need to put some effort beyond a simple fix. Just more fun I guess :)