Sha256: 841ed9d73af444999db2c6c33aad37131a97b6ff4af62cf7f53f701bf55da96a

Contents?: true

Size: 1.1 KB

Versions: 7

Compression:

Stored size: 1.1 KB

Contents

##
# UserGroup model. It links User and Group models.
class Anoubis::Sso::Client::UserGroup < Anoubis::Sso::Client::ApplicationRecord
  self.table_name = 'user_groups'

  before_update :before_update_sso_client_user_group
  after_create :after_modify_sso_client_user_group
  after_destroy :after_modify_sso_client_user_group

  belongs_to :group, class_name: 'Anoubis::Sso::Client::Group'
  validates :group, presence: true, uniqueness: { scope: [:user_id] }
  belongs_to :user, class_name: 'Anoubis::Sso::Client::User'
  validates :user, presence: true, uniqueness: { scope: [:group_id] }

  ##
  # Can't change elements
  def before_update_sso_client_user_group
    self.user_id = self.user_id_was if self.user_id_changed?
    self.group_id = self.group_id_was if self.group_id_changed?
  end

  ##
  # Delete all redis keys of menu for defined user
  def after_modify_sso_client_user_group
    if self.redis
      self.redis.keys(self.redis_prefix + self.user.uuid.to_s + '_*').each do |data|
        self.redis.del data
      end
      self.redis.del self.redis_prefix + 'user:' + self.user.uuid.to_s
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
anoubis-1.0.12 app/models/anoubis/sso/client/user_group.rb
anoubis-1.0.11 app/models/anoubis/sso/client/user_group.rb
anoubis-1.0.10 app/models/anoubis/sso/client/user_group.rb
anoubis-1.0.8 app/models/anoubis/sso/client/user_group.rb
anoubis-1.0.7 app/models/anoubis/sso/client/user_group.rb
anoubis-1.0.1 app/models/anoubis/sso/client/user_group.rb
anoubis-1.0.0 app/models/anoubis/sso/client/user_group.rb