Add EnterpriseRelationshipPermission model

This commit is contained in:
Rohan Mitchell
2014-08-25 13:26:23 +10:00
parent cb615ba994
commit 70feef1256
5 changed files with 30 additions and 1 deletions

View File

@@ -1,6 +1,7 @@
class EnterpriseRelationship < ActiveRecord::Base
belongs_to :parent, class_name: 'Enterprise', touch: true
belongs_to :child, class_name: 'Enterprise', touch: true
has_many :permissions, class_name: 'EnterpriseRelationshipPermission'
validates_presence_of :parent_id, :child_id
validates_uniqueness_of :child_id, scope: :parent_id, message: "^That relationship is already established."

View File

@@ -0,0 +1,2 @@
class EnterpriseRelationshipPermission < ActiveRecord::Base
end

View File

@@ -0,0 +1,11 @@
class CreateEnterpriseRelationshipPermissions < ActiveRecord::Migration
def change
create_table :enterprise_relationship_permissions do |t|
t.references :enterprise_relationship
t.string :name, null: false
end
add_index :enterprise_relationship_permissions, :enterprise_relationship_id, name: 'index_erp_on_erid'
add_foreign_key :enterprise_relationship_permissions, :enterprise_relationships, name: 'erp_enterprise_relationship_id_fk'
end
end

View File

@@ -11,7 +11,7 @@
#
# It's strongly recommended to check this file into your version control system.
ActiveRecord::Schema.define(:version => 20140815065014) do
ActiveRecord::Schema.define(:version => 20140825023227) do
create_table "adjustment_metadata", :force => true do |t|
t.integer "adjustment_id"
@@ -207,6 +207,13 @@ ActiveRecord::Schema.define(:version => 20140815065014) do
add_index "enterprise_groups_enterprises", ["enterprise_group_id"], :name => "index_enterprise_groups_enterprises_on_enterprise_group_id"
add_index "enterprise_groups_enterprises", ["enterprise_id"], :name => "index_enterprise_groups_enterprises_on_enterprise_id"
create_table "enterprise_relationship_permissions", :force => true do |t|
t.integer "enterprise_relationship_id"
t.string "name", :null => false
end
add_index "enterprise_relationship_permissions", ["enterprise_relationship_id"], :name => "index_erp_on_erid"
create_table "enterprise_relationships", :force => true do |t|
t.integer "parent_id"
t.integer "child_id"
@@ -1052,6 +1059,8 @@ ActiveRecord::Schema.define(:version => 20140815065014) do
add_foreign_key "enterprise_groups_enterprises", "enterprise_groups", name: "enterprise_groups_enterprises_enterprise_group_id_fk"
add_foreign_key "enterprise_groups_enterprises", "enterprises", name: "enterprise_groups_enterprises_enterprise_id_fk"
add_foreign_key "enterprise_relationship_permissions", "enterprise_relationships", name: "erp_enterprise_relationship_id_fk"
add_foreign_key "enterprise_relationships", "enterprises", name: "enterprise_relationships_child_id_fk", column: "child_id"
add_foreign_key "enterprise_relationships", "enterprises", name: "enterprise_relationships_parent_id_fk", column: "parent_id"

View File

@@ -101,6 +101,12 @@ FactoryGirl.define do
end
factory :enterprise_relationship do
ignore { permissions [] }
after(:create) do |er, proxy|
proxy.permissions.each do |name|
er.permissions.create! name: name
end
end
end
factory :enterprise_role do