mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-27 01:43:22 +00:00
Add EnterpriseRelationshipPermission model
This commit is contained in:
@@ -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."
|
||||
|
||||
2
app/models/enterprise_relationship_permission.rb
Normal file
2
app/models/enterprise_relationship_permission.rb
Normal file
@@ -0,0 +1,2 @@
|
||||
class EnterpriseRelationshipPermission < ActiveRecord::Base
|
||||
end
|
||||
@@ -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
|
||||
11
db/schema.rb
11
db/schema.rb
@@ -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"
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user