2018-08-15 21:45:57 +00:00
# frozen_string_literal: true
2013-09-11 18:17:28 +00:00
module Emails
module Profile
2014-12-01 14:11:26 +00:00
def new_user_email ( user_id , token = nil )
2015-03-27 11:58:23 +00:00
@current_user = @user = User . find ( user_id )
2014-02-18 10:12:01 +00:00
@target_url = user_url ( @user )
2014-07-15 11:25:11 +00:00
@token = token
2021-09-16 15:12:47 +00:00
mail ( to : @user . notification_email_or_default , subject : subject ( " Account was created for you " ) )
2013-09-11 18:17:28 +00:00
end
2020-11-13 00:09:49 +00:00
def instance_access_request_email ( user , recipient )
@user = user
@recipient = recipient
profile_email_with_layout (
2021-09-16 15:12:47 +00:00
to : recipient . notification_email_or_default ,
2020-11-13 00:09:49 +00:00
subject : subject ( _ ( " GitLab Account Request " ) ) )
end
2020-12-03 00:09:53 +00:00
def user_admin_rejection_email ( name , email )
@name = name
profile_email_with_layout (
to : email ,
subject : subject ( _ ( " GitLab account request rejected " ) ) )
end
2021-07-07 12:08:23 +00:00
def user_deactivated_email ( name , email )
@name = name
profile_email_with_layout (
to : email ,
subject : subject ( _ ( 'Your account has been deactivated' ) ) )
end
2018-08-27 15:31:01 +00:00
# rubocop: disable CodeReuse/ActiveRecord
2013-09-11 18:17:28 +00:00
def new_ssh_key_email ( key_id )
2017-07-05 11:11:18 +00:00
@key = Key . find_by ( id : key_id )
2016-03-10 16:15:14 +00:00
return unless @key
2015-03-27 11:58:23 +00:00
@current_user = @user = @key . user
2014-02-18 10:12:01 +00:00
@target_url = user_url ( @user )
2021-09-16 15:12:47 +00:00
mail ( to : @user . notification_email_or_default , subject : subject ( " SSH key was added to your account " ) )
2013-09-11 18:17:28 +00:00
end
2018-08-27 15:31:01 +00:00
# rubocop: enable CodeReuse/ActiveRecord
2017-02-28 09:49:59 +00:00
2018-08-27 15:31:01 +00:00
# rubocop: disable CodeReuse/ActiveRecord
2017-02-28 09:49:59 +00:00
def new_gpg_key_email ( gpg_key_id )
2017-07-05 11:11:18 +00:00
@gpg_key = GpgKey . find_by ( id : gpg_key_id )
2017-02-28 09:49:59 +00:00
return unless @gpg_key
@current_user = @user = @gpg_key . user
@target_url = user_url ( @user )
2021-09-16 15:12:47 +00:00
mail ( to : @user . notification_email_or_default , subject : subject ( " GPG key was added to your account " ) )
2017-02-28 09:49:59 +00:00
end
2018-08-27 15:31:01 +00:00
# rubocop: enable CodeReuse/ActiveRecord
2019-12-10 07:53:40 +00:00
2022-03-07 06:15:33 +00:00
def access_token_created_email ( user , token_name )
return unless user & . active?
@user = user
@target_url = profile_personal_access_tokens_url
@token_name = token_name
Gitlab :: I18n . with_locale ( @user . preferred_language ) do
mail ( to : @user . notification_email_or_default , subject : subject ( _ ( " A new personal access token has been created " ) ) )
end
end
2021-02-25 12:11:01 +00:00
def access_token_about_to_expire_email ( user , token_names )
2019-12-10 07:53:40 +00:00
return unless user
@user = user
2021-02-25 12:11:01 +00:00
@token_names = token_names
2019-12-10 07:53:40 +00:00
@target_url = profile_personal_access_tokens_url
@days_to_expire = PersonalAccessToken :: DAYS_TO_EXPIRE
Gitlab :: I18n . with_locale ( @user . preferred_language ) do
2021-09-16 15:12:47 +00:00
mail ( to : @user . notification_email_or_default , subject : subject ( _ ( " Your personal access tokens will expire in %{days_to_expire} days or less " ) % { days_to_expire : @days_to_expire } ) )
2019-12-10 07:53:40 +00:00
end
end
2020-05-13 03:08:26 +00:00
2020-08-06 00:09:53 +00:00
def access_token_expired_email ( user )
return unless user && user . active?
@user = user
@target_url = profile_personal_access_tokens_url
Gitlab :: I18n . with_locale ( @user . preferred_language ) do
2021-09-16 15:12:47 +00:00
mail ( to : @user . notification_email_or_default , subject : subject ( _ ( " Your personal access token has expired " ) ) )
2020-08-06 00:09:53 +00:00
end
end
2021-03-31 21:09:15 +00:00
def ssh_key_expired_email ( user , fingerprints )
2021-04-08 00:09:11 +00:00
return unless user & . active?
2021-03-31 21:09:15 +00:00
@user = user
@fingerprints = fingerprints
@target_url = profile_keys_url
Gitlab :: I18n . with_locale ( @user . preferred_language ) do
2021-09-16 15:12:47 +00:00
mail ( to : @user . notification_email_or_default , subject : subject ( _ ( " Your SSH key has expired " ) ) )
2021-03-31 21:09:15 +00:00
end
end
2021-04-08 00:09:11 +00:00
def ssh_key_expiring_soon_email ( user , fingerprints )
return unless user & . active?
@user = user
@fingerprints = fingerprints
@target_url = profile_keys_url
Gitlab :: I18n . with_locale ( @user . preferred_language ) do
2021-09-16 15:12:47 +00:00
mail ( to : @user . notification_email_or_default , subject : subject ( _ ( " Your SSH key is expiring soon. " ) ) )
2021-04-08 00:09:11 +00:00
end
end
2020-06-01 18:08:07 +00:00
def unknown_sign_in_email ( user , ip , time )
2020-05-13 03:08:26 +00:00
@user = user
@ip = ip
2020-06-01 18:08:07 +00:00
@time = time
2020-05-13 03:08:26 +00:00
@target_url = edit_profile_password_url
Gitlab :: I18n . with_locale ( @user . preferred_language ) do
2020-11-13 00:09:49 +00:00
profile_email_with_layout (
2021-09-16 15:12:47 +00:00
to : @user . notification_email_or_default ,
2020-11-13 00:09:49 +00:00
subject : subject ( _ ( " %{host} sign-in from new location " ) % { host : Gitlab . config . gitlab . host } ) )
2020-05-13 03:08:26 +00:00
end
end
2020-08-20 15:10:18 +00:00
def disabled_two_factor_email ( user )
return unless user
@user = user
Gitlab :: I18n . with_locale ( @user . preferred_language ) do
2021-09-16 15:12:47 +00:00
mail ( to : @user . notification_email_or_default , subject : subject ( _ ( " Two-factor authentication disabled " ) ) )
2020-08-20 15:10:18 +00:00
end
end
2020-11-13 00:09:49 +00:00
private
def profile_email_with_layout ( to : , subject : , layout : 'mailer' )
mail ( to : to , subject : subject ) do | format |
format . html { render layout : layout }
format . text { render layout : layout }
end
end
2013-09-11 18:17:28 +00:00
end
end
2019-12-06 00:07:48 +00:00
2021-05-11 21:10:21 +00:00
Emails :: Profile . prepend_mod_with ( 'Emails::Profile' )