diff --git a/app/models/contact.rb b/app/models/contact.rb index c387eb0fe..564f9f944 100644 --- a/app/models/contact.rb +++ b/app/models/contact.rb @@ -12,6 +12,8 @@ class Contact < ActiveRecord::Base has_many :aspect_memberships has_many :aspects, :through => :aspect_memberships validate :not_contact_for_self + validates_uniqueness_of :person_id, :scope => :user_id + def dispatch_request request = self.generate_request self.user.push_to_people(request, [self.person]) @@ -19,12 +21,12 @@ class Contact < ActiveRecord::Base end def generate_request - Request.new(:sender => self.user, :recipient => self.person) + Request.new(:sender => self.user.person, :recipient => self.person) end private def not_contact_for_self - if person.owner == user + if person_id && person.owner == user errors[:base] << 'Cannot create self-contact' end end diff --git a/app/models/person.rb b/app/models/person.rb index a8858692a..b336c7695 100644 --- a/app/models/person.rb +++ b/app/models/person.rb @@ -96,13 +96,13 @@ class Person < ActiveRecord::Base def exported_key= new_key raise "Don't change a key" if serialized_public_key - @serialized_public_key = new_key + serialized_public_key = new_key end #database calls def self.by_account_identifier(identifier) identifier = identifier.strip.downcase.gsub('acct:', '') - self.first(:diaspora_handle => identifier) + self.where(:diaspora_handle => identifier).first end def self.local_by_account_identifier(identifier) @@ -113,7 +113,7 @@ class Person < ActiveRecord::Base def self.build_from_webfinger(profile, hcard) return nil if profile.nil? || !profile.valid_diaspora_profile? new_person = Person.new - new_person.exported_key = profile.public_key + new_person.serialized_public_key = profile.public_key new_person.guid = profile.guid new_person.diaspora_handle = profile.account new_person.url = profile.seed_location diff --git a/config/database.yml b/config/database.yml index 30dcd4324..93580957b 100644 --- a/config/database.yml +++ b/config/database.yml @@ -1,10 +1,6 @@ test: adapter: mysql2 database: diaspora_test - user: root - password: password development: adapter: mysql2 database: diaspora_development - user: root - password: password