[WEB-5657] feat: add synchronization configuration for multiple providers in authentication adapter (#8336)

* feat: add sync functionality for OAuth providers

- Implemented `check_sync_enabled` method to verify if sync is enabled for Google, GitHub, GitLab, and Gitea.
- Added `sync_user_data` method to update user details, including first name, last name, display name, and avatar.
- Updated configuration variables to include sync options for each provider.
- Integrated sync check into the login/signup process.

* feat: add sync toggle for OAuth providers in configuration forms

* fix: remove default value for sync options in OAuth configuration forms

* chore: delete old avatar and upload a new one

* chore: update class method

* chore: add email nullable

* refactor: streamline sync check for multiple providers and improve avatar deletion logic

* fix: ensure ENABLE_SYNC configurations default to "0" for Gitea, Github, Gitlab, and Google forms

* fix: simplify toggle switch value handling in ControllerSwitch component

---------

Co-authored-by: b-saikrishnakanth <bsaikrishnakanth97@gmail.com>
This commit is contained in:
Nikhil 2025-12-22 12:23:39 +05:30 committed by GitHub
parent 4908211fe6
commit c2ce21e56c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 278 additions and 73 deletions

View file

@ -16,19 +16,28 @@ export type TInstanceAuthenticationMethodKeys =
| "IS_GITLAB_ENABLED"
| "IS_GITEA_ENABLED";
export type TInstanceGoogleAuthenticationConfigurationKeys = "GOOGLE_CLIENT_ID" | "GOOGLE_CLIENT_SECRET";
export type TInstanceGoogleAuthenticationConfigurationKeys =
| "GOOGLE_CLIENT_ID"
| "GOOGLE_CLIENT_SECRET"
| "ENABLE_GOOGLE_SYNC";
export type TInstanceGithubAuthenticationConfigurationKeys =
| "GITHUB_CLIENT_ID"
| "GITHUB_CLIENT_SECRET"
| "GITHUB_ORGANIZATION_ID";
| "GITHUB_ORGANIZATION_ID"
| "ENABLE_GITHUB_SYNC";
export type TInstanceGitlabAuthenticationConfigurationKeys =
| "GITLAB_HOST"
| "GITLAB_CLIENT_ID"
| "GITLAB_CLIENT_SECRET";
| "GITLAB_CLIENT_SECRET"
| "ENABLE_GITLAB_SYNC";
export type TInstanceGiteaAuthenticationConfigurationKeys = "GITEA_HOST" | "GITEA_CLIENT_ID" | "GITEA_CLIENT_SECRET";
export type TInstanceGiteaAuthenticationConfigurationKeys =
| "GITEA_HOST"
| "GITEA_CLIENT_ID"
| "GITEA_CLIENT_SECRET"
| "ENABLE_GITEA_SYNC";
export type TInstanceAuthenticationConfigurationKeys =
| TInstanceGoogleAuthenticationConfigurationKeys