app/models/roroacms/comment.rb in roroacms-0.0.6.9 vs app/models/roroacms/comment.rb in roroacms-0.0.7

- old
+ new

@@ -1,84 +1,84 @@ -module Roroacms - class Comment < ActiveRecord::Base - - ## misc ## - - has_ancestry - - ## associations ## - - belongs_to :post - - ## validations ## - - validates :email, presence: true, :format => { with: /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i, on: :create } - validates :post_id, :author, :comment, :presence => true - - ## callbacks ## - - before_create :set_defaults - before_save :deal_with_abnormalaties - - ## methods ## - - # The bootstrap for the bulk update function. It takes in the call - # and decides what function to call in order to get the correct output - # Params: - # +params+:: all parameters - - def self.bulk_update(params) - - action = params[:to_do] - action = action.gsub(' ', '_') - - if !params[:comments].blank? - - case action.downcase - when "unapprove" - # bulk unapprove given comments - Comment.where(:id => params[:comments]).update_all(:comment_approved => "N") - return 'unapproved' - when "approve" - # bulk approve given comments - Comment.where(:id => params[:comments]).update_all(:comment_approved => "Y") - return 'approved' - when "mark_as_spam" - # bulk mark as spam for given comments - Comment.where(:id => params[:comments]).update_all(:comment_approved => "S", :is_spam => 'Y') - return 'marked as spam' - when "destroy" - # bulk delete given comments - Comment.where(:id => params[:comments]).destroy_all - return 'destroyed' - end - else - return 'ntd' - end - - end - - - private - - # strip any sort of html, we don't want javascrpt injection - - def deal_with_abnormalaties - self.comment = comment.to_s.gsub(%r{</?[^>]+?>}, '').gsub(/<script.*?>[\s\S]*<\/script>/i, "") - if !self.website.blank? - website = self.website.sub(/^https?\:\/\//, '').sub(/^www./,'') - unless self.website[/\Awww.\/\//] || self.website[/\Awww.\/\//] - website = "www.#{website}" - end - self.website = "http://#{website}" - end - end - - # set default values of the record before adding to the database - - def set_defaults - self.comment_approved = 'N' - self.submitted_on = Time.now.to_s(:db) - end - - end +module Roroacms + class Comment < ActiveRecord::Base + + ## misc ## + + has_ancestry + + ## associations ## + + belongs_to :post + + ## validations ## + + validates :email, presence: true, :format => { with: /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i, on: :create } + validates :post_id, :author, :comment, :presence => true + + ## callbacks ## + + before_create :set_defaults + before_save :deal_with_abnormalaties + + ## methods ## + + # The bootstrap for the bulk update function. It takes in the call + # and decides what function to call in order to get the correct output + # Params: + # +params+:: all parameters + + def self.bulk_update(params) + + action = params[:to_do] + action = action.gsub(' ', '_') + + if !params[:comments].blank? + + case action.downcase + when "unapprove" + # bulk unapprove given comments + Comment.where(:id => params[:comments]).update_all(:comment_approved => "N") + return 'unapproved' + when "approve" + # bulk approve given comments + Comment.where(:id => params[:comments]).update_all(:comment_approved => "Y") + return 'approved' + when "mark_as_spam" + # bulk mark as spam for given comments + Comment.where(:id => params[:comments]).update_all(:comment_approved => "S", :is_spam => 'Y') + return 'marked as spam' + when "destroy" + # bulk delete given comments + Comment.where(:id => params[:comments]).destroy_all + return 'destroyed' + end + else + return 'ntd' + end + + end + + + private + + # strip any sort of html, we don't want javascrpt injection + + def deal_with_abnormalaties + self.comment = comment.to_s.gsub(%r{</?[^>]+?>}, '').gsub(/<script.*?>[\s\S]*<\/script>/i, "") + if !self.website.blank? + website = self.website.sub(/^https?\:\/\//, '').sub(/^www./,'') + unless self.website[/\Awww.\/\//] || self.website[/\Awww.\/\//] + website = "www.#{website}" + end + self.website = "http://#{website}" + end + end + + # set default values of the record before adding to the database + + def set_defaults + self.comment_approved = 'N' + self.submitted_on = Time.now.to_s(:db) + end + + end end \ No newline at end of file