Skip to content
Snippets Groups Projects
Commit 9621dd0c authored by James Lopez's avatar James Lopez
Browse files

refactor services to match EE signature

parent 11c8b8bc
No related branches found
No related tags found
No related merge requests found
Showing
with 43 additions and 41 deletions
Loading
Loading
@@ -128,7 +128,7 @@ class Admin::UsersController < Admin::ApplicationController
end
 
respond_to do |format|
result = Users::UpdateService.new(user, user_params_with_pass).execute do |user|
result = Users::UpdateService.new(current_user, user, user_params_with_pass).execute do |user|
user.skip_reconfirmation!
end
 
Loading
Loading
@@ -155,7 +155,7 @@ class Admin::UsersController < Admin::ApplicationController
 
def remove_email
email = user.emails.find(params[:email_id])
success = Emails::DestroyService.new(user, email: email.email).execute
success = Emails::DestroyService.new(current_user, user, email: email.email).execute
 
respond_to do |format|
if success
Loading
Loading
@@ -219,7 +219,7 @@ class Admin::UsersController < Admin::ApplicationController
end
 
def update_user(&block)
result = Users::UpdateService.new(user).execute(&block)
result = Users::UpdateService.new(current_user, user).execute(&block)
 
result[:status] == :success
end
Loading
Loading
Loading
Loading
@@ -2,7 +2,7 @@ class Profiles::AvatarsController < Profiles::ApplicationController
def destroy
@user = current_user
 
Users::UpdateService.new(@user).execute { |user| user.remove_avatar! }
Users::UpdateService.new(current_user, @user).execute { |user| user.remove_avatar! }
 
redirect_to profile_path, status: 302
end
Loading
Loading
Loading
Loading
@@ -5,7 +5,7 @@ class Profiles::EmailsController < Profiles::ApplicationController
end
 
def create
@email = Emails::CreateService.new(current_user, email_params).execute
@email = Emails::CreateService.new(current_user, current_user, email_params).execute
 
if @email.errors.blank?
NotificationService.new.new_email(@email)
Loading
Loading
@@ -19,7 +19,7 @@ class Profiles::EmailsController < Profiles::ApplicationController
def destroy
@email = current_user.emails.find(params[:id])
 
Emails::DestroyService.new(current_user, email: @email.email).execute
Emails::DestroyService.new(current_user, current_user, email: @email.email).execute
 
respond_to do |format|
format.html { redirect_to profile_emails_url, status: 302 }
Loading
Loading
Loading
Loading
@@ -7,7 +7,7 @@ class Profiles::NotificationsController < Profiles::ApplicationController
end
 
def update
result = Users::UpdateService.new(current_user, user_params).execute
result = Users::UpdateService.new(current_user, current_user, user_params).execute
 
if result[:status] == :success
flash[:notice] = "Notification settings saved"
Loading
Loading
Loading
Loading
@@ -21,10 +21,10 @@ class Profiles::PasswordsController < Profiles::ApplicationController
password_automatically_set: false
}
 
result = Users::UpdateService.new(@user, password_attributes).execute
result = Users::UpdateService.new(current_user, @user, password_attributes).execute
 
if result[:status] == :success
Users::UpdateService.new(@user, password_expires_at: nil).execute
Users::UpdateService.new(current_user, @user, password_expires_at: nil).execute
 
redirect_to root_path, notice: 'Password successfully changed'
else
Loading
Loading
@@ -46,7 +46,7 @@ class Profiles::PasswordsController < Profiles::ApplicationController
return
end
 
result = Users::UpdateService.new(@user, password_attributes).execute
result = Users::UpdateService.new(current_user, @user, password_attributes).execute
 
if result[:status] == :success
flash[:notice] = "Password was successfully updated. Please login with it"
Loading
Loading
Loading
Loading
@@ -6,7 +6,7 @@ class Profiles::PreferencesController < Profiles::ApplicationController
 
def update
begin
result = Users::UpdateService.new(user, preferences_params).execute
result = Users::UpdateService.new(current_user, user, preferences_params).execute
 
if result[:status] == :success
flash[:notice] = 'Preferences saved.'
Loading
Loading
Loading
Loading
@@ -10,7 +10,7 @@ class Profiles::TwoFactorAuthsController < Profiles::ApplicationController
current_user.otp_grace_period_started_at = Time.current
end
 
Users::UpdateService.new(current_user).execute!
Users::UpdateService.new(current_user, current_user).execute!
 
if two_factor_authentication_required? && !current_user.two_factor_enabled?
two_factor_authentication_reason(
Loading
Loading
@@ -41,7 +41,7 @@ class Profiles::TwoFactorAuthsController < Profiles::ApplicationController
 
def create
if current_user.validate_and_consume_otp!(params[:pin_code])
Users::UpdateService.new(current_user, otp_required_for_login: true).execute! do |user|
Users::UpdateService.new(current_user, current_user, otp_required_for_login: true).execute! do |user|
@codes = user.generate_otp_backup_codes!
end
 
Loading
Loading
@@ -70,7 +70,7 @@ class Profiles::TwoFactorAuthsController < Profiles::ApplicationController
end
 
def codes
Users::UpdateService.new(current_user).execute! do |user|
Users::UpdateService.new(current_user, current_user).execute! do |user|
@codes = user.generate_otp_backup_codes!
end
end
Loading
Loading
Loading
Loading
@@ -10,7 +10,7 @@ class ProfilesController < Profiles::ApplicationController
 
def update
respond_to do |format|
result = Users::UpdateService.new(@user, user_params).execute
result = Users::UpdateService.new(current_user, @user, user_params).execute
 
if result[:status] == :success
message = "Profile was successfully updated"
Loading
Loading
@@ -25,7 +25,7 @@ class ProfilesController < Profiles::ApplicationController
end
 
def reset_private_token
Users::UpdateService.new(@user).execute! do |user|
Users::UpdateService.new(current_user, @user).execute! do |user|
user.reset_authentication_token!
end
 
Loading
Loading
@@ -35,7 +35,7 @@ class ProfilesController < Profiles::ApplicationController
end
 
def reset_incoming_email_token
Users::UpdateService.new(@user).execute! do |user|
Users::UpdateService.new(current_user, @user).execute! do |user|
user.reset_incoming_email_token!
end
 
Loading
Loading
@@ -45,7 +45,7 @@ class ProfilesController < Profiles::ApplicationController
end
 
def reset_rss_token
Users::UpdateService.new(@user).execute! do |user|
Users::UpdateService.new(current_user, @user).execute! do |user|
user.reset_rss_token!
end
 
Loading
Loading
@@ -61,7 +61,7 @@ class ProfilesController < Profiles::ApplicationController
end
 
def update_username
result = Users::UpdateService.new(@user, username: user_params[:username]).execute
result = Users::UpdateService.new(current_user, @user, username: user_params[:username]).execute
 
options = if result[:status] == :success
{ notice: "Username successfully changed" }
Loading
Loading
Loading
Loading
@@ -55,7 +55,7 @@ class SessionsController < Devise::SessionsController
 
return unless user && user.require_password_creation?
 
Users::UpdateService.new(user).execute do |user|
Users::UpdateService.new(current_user, user).execute do |user|
@token = user.generate_reset_token
end
 
Loading
Loading
Loading
Loading
@@ -60,7 +60,7 @@ class User < ActiveRecord::Base
lease = Gitlab::ExclusiveLease.new("user_update_tracked_fields:#{id}", timeout: 1.hour.to_i)
return unless lease.try_obtain
 
Users::UpdateService.new(self).execute(validate: false)
Users::UpdateService.new(self, self).execute(validate: false)
end
 
attr_accessor :force_random_password
Loading
Loading
@@ -526,8 +526,8 @@ class User < ActiveRecord::Base
def update_emails_with_primary_email
primary_email_record = emails.find_by(email: email)
if primary_email_record
Emails::DestroyService.new(self, email: email).execute
Emails::CreateService.new(self, email: email_was).execute
Emails::DestroyService.new(self, self, email: email).execute
Emails::CreateService.new(self, self, email: email_was).execute
end
end
 
Loading
Loading
@@ -1000,7 +1000,7 @@ class User < ActiveRecord::Base
if attempts_exceeded?
lock_access! unless access_locked?
else
Users::UpdateService.new(self).execute(validate: false)
Users::UpdateService.new(self, self).execute(validate: false)
end
end
 
Loading
Loading
@@ -1186,7 +1186,7 @@ class User < ActiveRecord::Base
&creation_block
)
 
Users::UpdateService.new(user).execute(validate: false)
Users::UpdateService.new(user, user).execute(validate: false)
user
ensure
Gitlab::ExclusiveLease.cancel(lease_key, uuid)
Loading
Loading
module Emails
class DestroyService < ::Emails::BaseService
def execute
Email.find_by_email!(@email).destroy && update_secondary_emails!
update_secondary_emails! if Email.find_by_email!(@email).destroy
end
 
private
 
def update_secondary_emails!
result = ::Users::UpdateService.new(@user).execute do |user|
result = ::Users::UpdateService.new(@current_user, @user).execute do |user|
user.update_secondary_emails!
end
 
Loading
Loading
Loading
Loading
@@ -12,12 +12,8 @@ module Users
 
assign_attributes(&block)
 
user_exists = @user.persisted?
if @user.save(validate: validate)
notify_new_user(@user, nil) unless user_exists
success
notify_success
else
error(@user.errors.full_messages.uniq.join('. '))
end
Loading
Loading
@@ -33,6 +29,12 @@ module Users
 
private
 
def notify_success
notify_new_user(@user, nil) unless @user.persisted?
success
end
def assign_attributes(&block)
if @user.user_synced_attributes_metadata
params.except!(*@user.user_synced_attributes_metadata.read_only_attributes)
Loading
Loading
Loading
Loading
@@ -136,7 +136,7 @@ module API
 
codes = nil
 
::Users::UpdateService.new(user).execute! do |user|
::Users::UpdateService.new(current_user, user).execute! do |user|
codes = user.generate_otp_backup_codes!
end
 
Loading
Loading
Loading
Loading
@@ -35,7 +35,7 @@ module API
new_notification_email = params.delete(:notification_email)
 
if new_notification_email
::Users::UpdateService.new(current_user, notification_email: new_notification_email).execute
::Users::UpdateService.new(current_user, current_user, notification_email: new_notification_email).execute
end
 
notification_setting.update(declared_params(include_missing: false))
Loading
Loading
Loading
Loading
@@ -166,7 +166,7 @@ module API
 
user_params[:password_expires_at] = Time.now if user_params[:password].present?
 
result = ::Users::UpdateService.new(user, user_params.except(:extern_uid, :provider)).execute
result = ::Users::UpdateService.new(current_user, user, user_params.except(:extern_uid, :provider)).execute
 
if result[:status] == :success
present user, with: Entities::UserPublic
Loading
Loading
@@ -326,7 +326,7 @@ module API
user = User.find_by(id: params.delete(:id))
not_found!('User') unless user
 
email = Emails::CreateService.new(user, declared_params(include_missing: false)).execute
email = Emails::CreateService.new(current_user, user, declared_params(include_missing: false)).execute
 
if email.errors.blank?
NotificationService.new.new_email(email)
Loading
Loading
@@ -367,7 +367,7 @@ module API
not_found!('Email') unless email
 
destroy_conditionally!(email) do |email|
Emails::DestroyService.new(current_user, email: email.email).execute
Emails::DestroyService.new(current_user, user, email: email.email).execute
end
 
user.update_secondary_emails!
Loading
Loading
@@ -672,7 +672,7 @@ module API
requires :email, type: String, desc: 'The new email'
end
post "emails" do
email = Emails::CreateService.new(current_user, declared_params).execute
email = Emails::CreateService.new(current_user, current_user, declared_params).execute
 
if email.errors.blank?
NotificationService.new.new_email(email)
Loading
Loading
@@ -691,7 +691,7 @@ module API
not_found!('Email') unless email
 
destroy_conditionally!(email) do |email|
Emails::DestroyService.new(current_user, email: email.email).execute
Emails::DestroyService.new(current_user, current_user, email: email.email).execute
end
 
current_user.update_secondary_emails!
Loading
Loading
Loading
Loading
@@ -16,7 +16,7 @@ module Gitlab
def self.allowed?(user)
self.open(user) do |access|
if access.allowed?
Users::UpdateService.new(user, last_credential_check_at: Time.now).execute
Users::UpdateService.new(user, user, last_credential_check_at: Time.now).execute
 
true
else
Loading
Loading
Loading
Loading
@@ -32,7 +32,7 @@ module Gitlab
 
block_after_save = needs_blocking?
 
Users::UpdateService.new(gl_user).execute!
Users::UpdateService.new(gl_user, gl_user).execute!
 
gl_user.block if block_after_save
 
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment