diff --git a/app/models/photo.rb b/app/models/photo.rb index d60bd3645..bce9d469d 100644 --- a/app/models/photo.rb +++ b/app/models/photo.rb @@ -29,9 +29,9 @@ class Photo < Post validates_with PhotoAlbumValidator - before_destroy :ensure_user_picture + attr_accessible :caption - attr_protected :person + before_destroy :ensure_user_picture def self.instantiate(params = {}) image_file = params.delete(:user_file) diff --git a/app/models/post.rb b/app/models/post.rb index 5b49dacd5..298d25b5f 100644 --- a/app/models/post.rb +++ b/app/models/post.rb @@ -32,11 +32,12 @@ class Post before_destroy :propogate_retraction after_destroy :destroy_comments + attr_accessible :user_refs def self.instantiate params new_post = self.new params.to_hash new_post.person = params[:person] new_post.public = params[:public] - new_post.save + new_post.diaspora_handle = new_post.person.diaspora_handle new_post end diff --git a/app/models/status_message.rb b/app/models/status_message.rb index a0f8ca002..d67bba6fb 100644 --- a/app/models/status_message.rb +++ b/app/models/status_message.rb @@ -11,6 +11,8 @@ class StatusMessage < Post key :message, String validates_presence_of :message + attr_accessible :message + def to_activity <<-XML diff --git a/app/models/user.rb b/app/models/user.rb index 1f1333e56..bb465e78a 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -145,6 +145,7 @@ class User aspect_ids = validate_aspect_permissions(aspect_ids) post = build_post(class_name, options) + post.socket_to_uid(id, :aspect_ids => aspect_ids) if post.respond_to?(:socket_to_uid) push_to_aspects(post, aspect_ids) @@ -201,9 +202,11 @@ class User model_class = class_name.to_s.camelize.constantize post = model_class.instantiate(options) - post.save - self.raw_visible_posts << post - self.save + if post.save + raise 'MongoMapper failed to catch a failed save' unless post.id + self.raw_visible_posts << post + self.save + end post end diff --git a/spec/controllers/status_message_controller_spec.rb b/spec/controllers/status_message_controller_spec.rb index 100d60ebe..059fe5fb4 100644 --- a/spec/controllers/status_message_controller_spec.rb +++ b/spec/controllers/status_message_controller_spec.rb @@ -45,7 +45,7 @@ describe StatusMessagesController do it "doesn't overwrite id" do old_status_message = user.post(:status_message, :message => "hello", :to => aspect.id) status_message_hash[:status_message][:id] = old_status_message.id - post :create, status_message_hash + lambda {post :create, status_message_hash}.should raise_error /failed save/ old_status_message.reload.message.should == 'hello' end end