Skip to content
Extraits de code Groupes Projets
comment.rb 1,29 ko
Newer Older
  • Learn to ignore specific revisions
  • Raphael's avatar
    Raphael a validé
    #   Copyright (c) 2010, Diaspora Inc.  This file is
    
    Raphael's avatar
    Raphael a validé
    #   licensed under the Affero General Public License version 3.  See
    #   the COPYRIGHT file.
    
    class Comment
      include MongoMapper::Document
      include ROXML
    
    maxwell's avatar
    maxwell a validé
      include Diaspora::Webhooks
    
    Raphael's avatar
    Raphael a validé
      include Encryptable
    
    maxwell's avatar
    maxwell a validé
      xml_accessor :person, :as => Person
      xml_accessor :post_id
    
      xml_accessor :_id
    
    
    Daniel Grippi's avatar
    Daniel Grippi a validé
      key :text,      String
      key :post_id,   ObjectId
    
      key :person_id, ObjectId
    
    Daniel Grippi's avatar
    Daniel Grippi a validé
    
      belongs_to :post,   :class_name => "Post"
    
      belongs_to :person, :class_name => "Person"
    
    Daniel Grippi's avatar
    Daniel Grippi a validé
    
      timestamps!
    
    Raphael's avatar
    Raphael a validé
      #ENCRYPTION
    
    Raphael's avatar
    Raphael a validé
      xml_accessor :creator_signature
    
    Raphael's avatar
    Raphael a validé
      key :creator_signature, String
      key :post_creator_signature, String
    
      def signable_accessors
    
        accessors = self.class.roxml_attrs.collect{|definition|
    
    Raphael's avatar
    Raphael a validé
          definition.accessor}
        accessors.delete 'person'
        accessors.delete 'creator_signature'
        accessors.delete 'post_creator_signature'
        accessors
      end
    
      def signable_string
    
        signable_accessors.collect{|accessor|
    
    Raphael's avatar
    Raphael a validé
          (self.send accessor.to_sym).to_s}.join ';'
      end
    
    
      def verify_post_creator_signature
    
        verify_signature(post_creator_signature, post.person)
    
    Raphael's avatar
    Raphael a validé
      end
    
    Raphael's avatar
    Raphael a validé
      def signature_valid?
    
    Raphael's avatar
    Raphael a validé
        verify_signature(creator_signature, person)
    
    Raphael's avatar
    Raphael a validé
      end
    
    maxwell's avatar
    maxwell a validé
    end