feat: add saml settings controller
This commit is contained in:
@@ -69,6 +69,7 @@ Rails.application.routes.draw do
|
||||
end
|
||||
resources :documents, only: [:index, :show, :create, :destroy]
|
||||
end
|
||||
resource :saml_settings, only: [:show, :create, :update, :destroy]
|
||||
resources :agent_bots, only: [:index, :create, :show, :update, :destroy] do
|
||||
delete :avatar, on: :member
|
||||
post :reset_access_token, on: :member
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
class Api::V1::Accounts::SamlSettingsController < Api::V1::Accounts::BaseController
|
||||
before_action :check_saml_feature_enabled
|
||||
before_action :check_authorization
|
||||
before_action :set_saml_settings
|
||||
|
||||
def show; end
|
||||
|
||||
def create
|
||||
@saml_settings = Current.account.build_saml_settings(saml_settings_params)
|
||||
@saml_settings.save!
|
||||
end
|
||||
|
||||
def update
|
||||
@saml_settings.update!(saml_settings_params)
|
||||
end
|
||||
|
||||
def destroy
|
||||
@saml_settings.destroy!
|
||||
head :no_content
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def set_saml_settings
|
||||
@saml_settings = Current.account.saml_settings || Current.account.build_saml_settings
|
||||
end
|
||||
|
||||
def saml_settings_params
|
||||
params.require(:saml_settings).permit(
|
||||
:enabled,
|
||||
:sso_url,
|
||||
:certificate_fingerprint,
|
||||
:certificate,
|
||||
:sp_entity_id,
|
||||
:enforced_sso,
|
||||
attribute_mappings: {},
|
||||
role_mappings: {}
|
||||
)
|
||||
end
|
||||
|
||||
def check_authorization
|
||||
authorize(AccountSamlSettings)
|
||||
end
|
||||
|
||||
def check_saml_feature_enabled
|
||||
return if Current.account.feature_enabled?('saml')
|
||||
|
||||
render json: { error: 'SAML feature not enabled for this account' }, status: :forbidden
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user