Skip to content
Extraits de code Groupes Projets
Valider d7e07dfd rédigé par Raphael's avatar Raphael
Parcourir les fichiers

comment specs fixed, comments now signed by post poster

parent 64c81f05
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -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
......@@ -49,8 +50,12 @@ class Comment
(self.send accessor.to_sym).to_s}.join ';'
end
def verify_post_creator_signature
verify_signature(post_creator_signature, post.person)
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)
......
Aucun aperçu pour ce type de fichier
......@@ -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
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter