comment specs fixed, comments now signed by post poster
This commit is contained in:
parent
64c81f0551
commit
d7e07dfda8
7 changed files with 17 additions and 11 deletions
|
|
@ -29,7 +29,8 @@ class Comment
|
|||
#ENCRYPTION
|
||||
|
||||
before_validation :sign_if_mine, :sign_if_my_post
|
||||
validates_true_for :creator_signature, :logic => lambda {self.verify_creator_signature}
|
||||
#validates_true_for :creator_signature, :logic => lambda {self.verify_creator_signature}
|
||||
validates_true_for :post_creator_signature, :logic => lambda {self.verify_post_creator_signature}
|
||||
|
||||
xml_accessor :creator_signature
|
||||
key :creator_signature, String
|
||||
|
|
@ -50,7 +51,11 @@ class Comment
|
|||
end
|
||||
|
||||
def verify_post_creator_signature
|
||||
unless person == User.owner
|
||||
verify_signature(post_creator_signature, post.person)
|
||||
else
|
||||
true
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ class Person
|
|||
|
||||
validates_true_for :url, :logic => lambda { self.url_unique?}
|
||||
|
||||
after_destroy :remove_all_traces#, :remove_key
|
||||
after_destroy :remove_all_traces, :remove_key
|
||||
|
||||
scope :friends, where(:_type => "Person", :active => true)
|
||||
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -11,7 +11,6 @@
|
|||
validity = nil
|
||||
GPGME::verify(creator_signature, signable_string,
|
||||
{:armor => true, :always_trust => true}){ |signature|
|
||||
puts signature
|
||||
validity = signature.status == GPGME::GPG_ERR_NO_ERROR &&
|
||||
signature.fpr == person.key_fingerprint
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ describe Person do
|
|||
end
|
||||
|
||||
|
||||
it 'should delete all of user upon user deletion' do
|
||||
it 'should delete all of user except comments upon user deletion' do
|
||||
Factory.create(:user)
|
||||
|
||||
f = Factory.create(:person)
|
||||
|
|
@ -53,8 +53,8 @@ describe Person do
|
|||
f.destroy
|
||||
|
||||
Post.count.should == 1
|
||||
Comment.all.count.should == 1
|
||||
s.comments.count.should == 1
|
||||
Comment.all.count.should == 4
|
||||
s.comments.count.should == 4
|
||||
end
|
||||
|
||||
it 'should let a user unfriend another user' do
|
||||
|
|
|
|||
|
|
@ -47,6 +47,9 @@ end
|
|||
Blog.any_instance.stubs(:verify_creator_signature).returns(true)
|
||||
Bookmark.any_instance.stubs(:verify_creator_signature).returns(true)
|
||||
Comment.any_instance.stubs(:verify_creator_signature).returns(true)
|
||||
Comment.any_instance.stubs(:verify_post_creator_signature).returns(true)
|
||||
Person.any_instance.stubs(:remove_key).returns(true)
|
||||
User.any_instance.stubs(:remove_key).returns(true)
|
||||
end
|
||||
|
||||
def unstub_mocha_stubs
|
||||
|
|
|
|||
|
|
@ -36,7 +36,6 @@ describe 'user encryption' do
|
|||
end
|
||||
|
||||
it 'should remove the key from the keyring on person destroy' do
|
||||
pending "We can implement deleting from the keyring later, its annoying to test b/c no stub any instance of"
|
||||
person = Factory.create :person
|
||||
keyid = person.key_fingerprint
|
||||
original_key = person.export_key
|
||||
|
|
@ -167,7 +166,7 @@ describe 'user encryption' do
|
|||
|
||||
it 'should verify a comment made on a remote post by a different friend' do
|
||||
comment = Comment.new(:person => @person2, :text => "balls", :post => @remote_message)
|
||||
comment.creator_signature = GPGME.sign(@remote_message.signable_string, nil,
|
||||
comment.creator_signature = GPGME.sign(comment.signable_string, nil,
|
||||
{:mode => GPGME::SIG_MODE_DETACH, :armor => true, :signers => [@person2.key]})
|
||||
comment.verify_creator_signature.should be true
|
||||
|
||||
|
|
@ -175,7 +174,7 @@ describe 'user encryption' do
|
|||
|
||||
it 'should reject comments on a remote post with only a creator sig' do
|
||||
comment = Comment.new(:person => @person2, :text => "balls", :post => @remote_message)
|
||||
comment.creator_signature = GPGME.sign(@remote_message.signable_string, nil,
|
||||
comment.creator_signature = GPGME.sign(comment.signable_string, nil,
|
||||
{:mode => GPGME::SIG_MODE_DETACH, :armor => true, :signers => [@person2.key]})
|
||||
comment.verify_creator_signature.should be true
|
||||
comment.verify_post_creator_signature.should be false
|
||||
|
|
|
|||
Loading…
Reference in a new issue