diff --git a/app/controllers/search_controller.rb b/app/controllers/search_controller.rb index affee2e97..e0db600da 100644 --- a/app/controllers/search_controller.rb +++ b/app/controllers/search_controller.rb @@ -62,6 +62,7 @@ class SearchController < ApplicationController items.each { |item| require item[:type].to_filename record = Kernel.const_get(item[:type]).lookup(id: item[:id]) + next if !record assets = record.assets(assets) result.push item } diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb index 81b1244c1..7f5e1acf6 100644 --- a/app/controllers/sessions_controller.rb +++ b/app/controllers/sessions_controller.rb @@ -282,12 +282,12 @@ class SessionsController < ApplicationController assets = {} sessions_clean = [] SessionHelper.list.each { |session| - next if !session.data['user_id'] + next if session.data['user_id'].blank? sessions_clean.push session - if session.data['user_id'] - user = User.lookup(id: session.data['user_id']) - assets = user.assets(assets) - end + next if session.data['user_id'] + user = User.lookup(id: session.data['user_id']) + next if !user + assets = user.assets(assets) } render json: { sessions: sessions_clean, diff --git a/app/models/observer/ticket/article_changes.rb b/app/models/observer/ticket/article_changes.rb index 2ae9294db..85e721803 100644 --- a/app/models/observer/ticket/article_changes.rb +++ b/app/models/observer/ticket/article_changes.rb @@ -41,7 +41,7 @@ class Observer::Ticket::ArticleChanges < ActiveRecord::Observer record.ticket.touch return end - record.ticket.save + record.ticket.save! end # get article count diff --git a/app/models/transaction/karma.rb b/app/models/transaction/karma.rb index c90d8be8c..ef32bdf2b 100644 --- a/app/models/transaction/karma.rb +++ b/app/models/transaction/karma.rb @@ -54,7 +54,7 @@ class Transaction::Karma if @item[:type] == 'reminder_reached' return if ticket.owner_id == 1 - return if ticket.pending_time > Time.zone.now - 2.days + return if ticket.pending_time && ticket.pending_time > Time.zone.now - 2.days Karma::ActivityLog.add('ticket reminder overdue (+2 days)', ticket.owner, 'Ticket', ticket.id) return end diff --git a/app/models/user.rb b/app/models/user.rb index c9896d8dc..03c8280f1 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -43,7 +43,7 @@ class User < ApplicationModel before_update :check_preferences_default, :validate_roles, :reset_login_failed after_create :avatar_for_email_check after_update :avatar_for_email_check - after_destroy :avatar_destroy + after_destroy :avatar_destroy, :user_device_destroy has_and_belongs_to_many :roles, after_add: [:cache_update, :check_notifications], after_remove: :cache_update, before_add: :validate_agent_limit, before_remove: :last_admin_check, class_name: 'Role' has_and_belongs_to_many :organizations, after_add: :cache_update, after_remove: :cache_update, class_name: 'Organization' @@ -1014,6 +1014,10 @@ raise 'Minimum one user need to have admin permissions' Avatar.remove('User', id) end + def user_device_destroy + UserDevice.remove(id) + end + def ensure_password return true if password_empty? return true if PasswordHash.crypted?(password) diff --git a/app/models/user_device.rb b/app/models/user_device.rb index 444703d15..3085fe24b 100644 --- a/app/models/user_device.rb +++ b/app/models/user_device.rb @@ -210,4 +210,15 @@ send user notification about new device or new location for device ) end +=begin + +delete device devices of user + + user_devices = UserDevice.remove(user.id) + +=end + + def self.remove(user_id) + UserDevice.where(user_id: user_id).destroy_all + end end diff --git a/test/integration/report_test.rb b/test/integration/report_test.rb index c90f7a561..5a67ae0ba 100644 --- a/test/integration/report_test.rb +++ b/test/integration/report_test.rb @@ -7,7 +7,7 @@ class ReportTest < ActiveSupport::TestCase setup do # set config - if !ENV['ES_URL'] + if ENV['ES_URL'].blank? raise "ERROR: Need ES_URL - hint ES_URL='http://127.0.0.1:9200'" end Setting.set('es_url', ENV['ES_URL'])