forgeplus/app/models/organization_extension.rb

54 lines
2.0 KiB
Ruby

# == Schema Information
#
# Table name: organization_extensions
#
# id :integer not null, primary key
# organization_id :integer
# description :string(255)
# website :string(255)
# location :string(255)
# repo_admin_change_team_access :boolean default("0")
# visibility :integer default("0")
# max_repo_creation :integer default("-1")
# created_at :datetime not null
# updated_at :datetime not null
# num_projects :integer default("0")
# num_users :integer default("0")
# num_teams :integer default("0")
# recommend :boolean default("0")
# news_banner_id :integer
# news_content :text(65535)
# memo :text(65535)
#
# Indexes
#
# index_organization_extensions_on_organization_id (organization_id)
#
class OrganizationExtension < ApplicationRecord
belongs_to :organization
has_many :organization_users, foreign_key: :organization_id, primary_key: :organization_id
has_many :projects, foreign_key: :user_id, primary_key: :organization_id
has_many :teams, foreign_key: :organization_id, primary_key: :organization_id
enum visibility: {common: 0, limited: 1, privacy: 2}
before_save :set_recommend
def self.build(organization_id, description, website, location, repo_admin_change_team_access, visibility, max_repo_creation)
self.create!(organization_id: organization_id,
description: description,
website: website,
location: location,
repo_admin_change_team_access: repo_admin_change_team_access,
visibility: visibility,
max_repo_creation: max_repo_creation)
end
private
def set_recommend
self.recommend = false unless self.common?
end
end