Sha256: 411bb47596107786a1e05b2a4b09a04ab9b3ec2856db893d56d681b65aad5236

Contents?: true

Size: 1.83 KB

Versions: 28

Compression:

Stored size: 1.83 KB

Contents

module Maestrano::Connector::Rails
  class Organization < ActiveRecord::Base

    # Enable Maestrano for this group
    maestrano_group_via :provider, :uid, :tenant do |group, maestrano|
      group.name = (maestrano.name.blank? ? "Default Group name" : maestrano.name)
      group.tenant = 'default' # To be set from SSO parameter
      #group.country_alpha2 = maestrano.country
      #group.free_trial_end_at = maestrano.free_trial_end_at
      #group.some_required_field = 'some-appropriate-default-value'
    end

    def initialize
      super
      self.synchronized_entities = {}
      Entity.entities_list.each do |entity|
        self.synchronized_entities[entity.to_sym] = true
      end
    end

    #===================================
    # Associations
    #===================================
    has_many :user_organization_rels
    has_many :users, through: :user_organization_rels

    #===================================
    # Validation
    #===================================
    validates :name, presence: true
    validates :tenant, presence: true

    #===================================
    # Serialized field
    #===================================
    serialize :synchronized_entities

    def add_member(user)
      if self.tenant == user.tenant && !self.member?(user)
        self.user_organization_rels.create(user:user)
      end
    end

    def member?(user)
      self.user_organization_rels.where(user_id:user.id).count > 0
    end

    def remove_member(user)
      self.user_organization_rels.where(user_id:user.id).delete_all
    end

    def from_omniauth(auth)
      self.oauth_provider = auth.provider
      self.oauth_uid = auth.uid
      self.oauth_token = auth.credentials.token
      self.refresh_token = auth.credentials.refresh_token
      self.instance_url = auth.credentials.instance_url
      self.save!
    end
  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
maestrano-connector-rails-0.3.9 app/models/maestrano/connector/rails/organization.rb
maestrano-connector-rails-0.3.8 app/models/maestrano/connector/rails/organization.rb
maestrano-connector-rails-0.3.7 app/models/maestrano/connector/rails/organization.rb
maestrano-connector-rails-0.3.6 app/models/maestrano/connector/rails/organization.rb
maestrano-connector-rails-0.3.5 app/models/maestrano/connector/rails/organization.rb
maestrano-connector-rails-0.3.4 app/models/maestrano/connector/rails/organization.rb
maestrano-connector-rails-0.3.3 app/models/maestrano/connector/rails/organization.rb
maestrano-connector-rails-0.3.2 app/models/maestrano/connector/rails/organization.rb
maestrano-connector-rails-0.3.1 app/models/maestrano/connector/rails/organization.rb
maestrano-connector-rails-0.3.0 app/models/maestrano/connector/rails/organization.rb
maestrano-connector-rails-0.2.20 app/models/maestrano/connector/rails/organization.rb
maestrano-connector-rails-0.2.19 app/models/maestrano/connector/rails/organization.rb
maestrano-connector-rails-0.2.18 app/models/maestrano/connector/rails/organization.rb
maestrano-connector-rails-0.2.17 app/models/maestrano/connector/rails/organization.rb
maestrano-connector-rails-0.2.16 app/models/maestrano/connector/rails/organization.rb
maestrano-connector-rails-0.2.15 app/models/maestrano/connector/rails/organization.rb
maestrano-connector-rails-0.2.14 app/models/maestrano/connector/rails/organization.rb
maestrano-connector-rails-0.2.13 app/models/maestrano/connector/rails/organization.rb
maestrano-connector-rails-0.2.12 app/models/maestrano/connector/rails/organization.rb
maestrano-connector-rails-0.2.11 app/models/maestrano/connector/rails/organization.rb