Coder Social home page Coder Social logo

Comments (3)

ellativity avatar ellativity commented on June 12, 2024

@jeremyf thanks for this issue! I'm just wanting to clarify one small thing:

Note: There is an edge case around whether or not they've stated "Only allow emails from this domain." If that is set, the OAuth2 authentication and email checks will also honor that.

This means that "only allow" overrides "never allow" if both fields contain the same domains?

from admin-docs.

jeremyf avatar jeremyf commented on June 12, 2024

I mis-explained.

There is the logic of is it an acceptable domain:

https://github.com/forem/forem/blob/7ba0b49ea8ee7b64481ef55351f847574018a846/app/models/settings/authentication.rb#L45-L54

That logic is used for both OAuth email checks and enabled email checks. And if the domain is blocked, that takes precedence.

The edge case is when we have both Email Enabled registration and OAuth enabled registration, and someone fills in a blocked domain of "gmail.com" and an allowed domain of "yahoo.com". From that point forward the logic will block anyone with "gmail.com" and then only allow someone from "yahoo.com". The end result being only emails, via email registration or OAuth, that are "yahoo.com" will be allowed.

I think it's a super edge case but one that might help in trouble shooting. (And if we need to, it's a quick change to rework that logic for the two different registration vectors)

from admin-docs.

FounderCasey avatar FounderCasey commented on June 12, 2024

Documentation has been updated here: https://admin.forem.com/docs/advanced-customization/config/authentication#block-email-domains

from admin-docs.

Related Issues (19)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.