37 lines
797 B
Ruby
37 lines
797 B
Ruby
# frozen_string_literal: true
|
|
|
|
##
|
|
# Holds user related data for workload calculation.
|
|
#
|
|
class WlUserData < ActiveRecord::Base
|
|
include WlUserDataDefaults
|
|
|
|
belongs_to :user, inverse_of: :wl_user_data, optional: true
|
|
self.table_name = 'wl_user_datas'
|
|
|
|
validates :threshold_lowload_min, :threshold_normalload_min, :threshold_highload_min, presence: true
|
|
validate :selected_group
|
|
|
|
def self.own_groups(user_object = User.current)
|
|
user_object.groups
|
|
end
|
|
|
|
def update_to_defaults_when_new
|
|
return unless new_record?
|
|
|
|
update(default_attributes)
|
|
end
|
|
|
|
private
|
|
|
|
def selected_group
|
|
return if main_group.blank? || own_group?(user)
|
|
|
|
errors.add(:main_group, :inclusion)
|
|
end
|
|
|
|
def own_group?(user)
|
|
self.class.own_groups(user).pluck(:id).include? main_group
|
|
end
|
|
end
|