-
Notifications
You must be signed in to change notification settings - Fork 297
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
General
: Allow users to login with their email address
#9181
Conversation
WalkthroughThe recent changes enhance user authentication processes by allowing identification through both login names and email addresses. Key updates include introducing a regex pattern for email validation, refining user retrieval methods in repositories, and standardizing terminology from "username" to "login." These modifications prioritize clarity, flexibility, and extensibility in user management, improving how user data is handled across the application. Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant LdapAuthenticationProvider
participant UserRepository
User->>LdapAuthenticationProvider: Login/Email input
LdapAuthenticationProvider->>User: Validate input type (login or email)
alt Email
LdapAuthenticationProvider->>UserRepository: findOneWithGroupsAndAuthoritiesByEmail
else Login
LdapAuthenticationProvider->>UserRepository: findOneWithGroupsAndAuthoritiesByLogin
end
UserRepository-->>LdapAuthenticationProvider: User details
LdapAuthenticationProvider-->>User: Authentication result
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
src/main/java/de/tum/in/www1/artemis/service/ldap/LdapUserDto.java
Outdated
Show resolved
Hide resolved
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
src/main/java/de/tum/in/www1/artemis/service/connectors/ldap/LdapAuthenticationProvider.java
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
src/main/java/de/tum/in/www1/artemis/service/connectors/ldap/LdapAuthenticationProvider.java
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested on TS1 again with my different tum emails after redeployment right now and works as expected. Code also looks good to me after the small changes now 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tested on TS1 and looked at the code 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good.
- Client changes are out of scope
- As mentioned, I'd suggest searching for username and email in one go. @krusche prefers to do this in a follow-up as complications with the current implementation would only arise through a rare edge-case
- Two comments (one code improvement, one TODO), both can be resolved in a follow-up if you want.
Checklist
General
Server
Motivation and Context
Steps for Testing
Testserver States
Note
These badges show the state of the test servers.
Green = Currently available, Red = Currently locked
Click on the badges to get to the test servers.
Review Progress
Performance Review
Code Review
Manual Tests
Summary by CodeRabbit
Summary by CodeRabbit
New Features
Bug Fixes
Refactor
Tests