Sha256: 3c5064a2ba25126873cdea4f903cb43fce88b63472a54f9361abce876f93677f

Contents?: true

Size: 999 Bytes

Versions: 5

Compression:

Stored size: 999 Bytes

Contents

class Bookmark < ActiveRecord::Base
  belongs_to :owner, :polymorphic => true
  attr_accessible :name, :controller, :query, :public

  validates_uniqueness_of :name, :unless => Proc.new{|b| Bookmark.my_bookmarks.where(:name => b.name).empty?}
  validates_presence_of :name, :controller, :query
  validates_format_of :controller, :with => /\A(\S+)\Z/, :message => N_("can't be blank or contain white spaces.")
  default_scope lambda { order(:name) }
  before_validation :set_default_user

  scope :my_bookmarks, lambda {
    user = User.current
    return {} unless SETTINGS[:login] and !user.nil?

    user       = User.current
    conditions = sanitize_sql_for_conditions(["((bookmarks.public = ?) OR (bookmarks.owner_id = ? AND bookmarks.owner_type = 'User'))", true, user.id])
    {:conditions => conditions}
  }

  scope :controller, lambda { |*args| where("controller = ?", (args.first || '')) }

  def set_default_user
    self.owner ||= User.current
  end

  def to_param
    name
  end

end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
foreman_discovery-1.0.0 test/foreman_app/app/models/bookmark.rb
foreman_discovery-1.0.0.rc4 test/foreman_app/app/models/bookmark.rb
foreman_discovery-1.0.0.rc3 test/foreman_app/app/models/bookmark.rb
foreman_discovery-1.0.0.rc2 test/foreman_app/app/models/bookmark.rb
foreman_discovery-1.0.0.rc1 test/foreman_app/app/models/bookmark.rb