# frozen_string_literal: true class AssociatedGroup < ActiveRecord::Base has_many :user_associated_groups, dependent: :destroy has_many :users, through: :user_associated_groups has_many :group_associated_groups, dependent: :destroy has_many :groups, through: :group_associated_groups def label "#{provider_name}:#{name}" end def self.has_provider? Discourse.enabled_authenticators.any? { |a| a.provides_groups? } end def self.cleanup! AssociatedGroup .left_joins(:group_associated_groups, :user_associated_groups) .where("group_associated_groups.id IS NULL AND user_associated_groups.id IS NULL") .where("last_used < ?", 1.week.ago) .delete_all end end # == Schema Information # # Table name: associated_groups # # id :bigint not null, primary key # name :string not null # provider_name :string not null # provider_id :string not null # last_used :datetime not null # created_at :datetime not null # updated_at :datetime not null # # Indexes # # associated_groups_provider_id (provider_name,provider_id) UNIQUE #