Add: #406 ユーザーのカスタムCSS (#825)

* Add: #406 ユーザーのカスタムCSS

* Fix lint

* Fix lint

* カスタムCSSの保存先を変更

* キャッシュを考慮して別URLに変更
This commit is contained in:
KMY(雪あすか) 2024-08-29 07:55:01 +09:00 committed by GitHub
parent 5ffd7593f1
commit 665c632d66
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
28 changed files with 283 additions and 4 deletions

View file

@ -78,7 +78,11 @@ class Auth::SessionsController < Devise::SessionsController
end
def user_params
params.require(:user).permit(:email, :password, :otp_attempt, credential: {})
params.require(:user).permit(:email, :password, :otp_attempt, :disable_css, credential: {})
end
def login_page_params
params.permit(:with_options)
end
def after_sign_in_path_for(resource)
@ -113,6 +117,11 @@ class Auth::SessionsController < Devise::SessionsController
truthy_param?(:continue)
end
def with_login_options?
login_page_params[:with_options] == '1'
end
helper_method :with_login_options?
def restart_session
clear_attempt_from_session
redirect_to new_user_session_path, alert: I18n.t('devise.failure.timeout')
@ -151,6 +160,8 @@ class Auth::SessionsController < Devise::SessionsController
sign_in(user)
flash.delete(:notice)
disable_custom_css!(user) if disable_custom_css?
LoginActivity.create(
user: user,
success: true,
@ -162,6 +173,15 @@ class Auth::SessionsController < Devise::SessionsController
UserMailer.suspicious_sign_in(user, request.remote_ip, request.user_agent, Time.now.utc).deliver_later! if @login_is_suspicious
end
def disable_custom_css?
user_params[:disable_css].present? && user_params[:disable_css] != '0'
end
def disable_custom_css!(user)
user.settings['web.use_custom_css'] = false
user.save!
end
def suspicious_sign_in?(user)
SuspiciousSignInDetector.new(user).suspicious?(request)
end