mirror of
https://github.com/we-promise/sure.git
synced 2026-04-07 22:34:47 +00:00
- Removed the `Settings::SsoIdentitiesController` and views for a simplified user experience. - Moved SSO identity management to the Security settings page (`Settings::SecuritiesController`). - Updated locale keys and layout for the new structure. - Fixed unlink protection warnings and adjusted redirection path. - Cleaned up routes, helper methods, and redundant code.
28 lines
742 B
Ruby
28 lines
742 B
Ruby
# frozen_string_literal: true
|
|
|
|
class Settings::SsoIdentitiesController < ApplicationController
|
|
layout "settings"
|
|
|
|
def destroy
|
|
@identity = Current.user.oidc_identities.find(params[:id])
|
|
|
|
# Prevent unlinking last identity if user has no password
|
|
if Current.user.oidc_identities.count == 1 && Current.user.password_digest.blank?
|
|
redirect_to settings_security_path, alert: t(".cannot_unlink_last")
|
|
return
|
|
end
|
|
|
|
provider_name = @identity.provider
|
|
@identity.destroy!
|
|
|
|
# Log account unlinking
|
|
SsoAuditLog.log_unlink!(
|
|
user: Current.user,
|
|
provider: provider_name,
|
|
request: request
|
|
)
|
|
|
|
redirect_to settings_security_path, notice: t(".success", provider: provider_name)
|
|
end
|
|
end
|