class Author < ActiveRecord::Base
has_one :artist
belongs_to :user
+ has_many :comics
+ has_many :panels
validates :name, :presence => true, :length => {:maximum => 30}
- validates :user_id, :numericality => true, :existence => true
+ validates :user_id, :numericality => true, :existence => {:both => false}
+
+ before_validation :valid_encode
+
+ def valid_encode
+ ['name'].each do |a|
+ next if attributes[a] == nil
+ raise Pettanr::BadRequest unless attributes[a].valid_encoding?
+ end
+ end
def supply_default
self.name = 'no name' if self.name.blank?
self.user_id = uid
end
- def own? au
- return false unless au.is_a?(Author)
+ def own? roles
+ roles = [roles] unless roles.respond_to?(:each)
+ au = Author.get_author_from_roles roles
+ return false unless au
self.id == au.id
end
- def visible? au
- if au == nil
- return false if MagicNumber['run_mode'] == 1
- elsif au.is_a?(Author)
- return true
+ def visible? roles
+ if MagicNumber['run_mode'] == 0
+ return false unless guest_role_check(roles)
else
- return false
+ return false unless reader_role_check(roles)
end
- true
+ return true
end
def artist?
{:include => {:artist => {}} }
end
- def self.show aid, au
+ def self.show aid, roles
opt = {}
opt.merge!(Author.show_opt)
res = Author.find(aid, opt)
- raise ActiveRecord::Forbidden unless res.visible?(au)
+ raise ActiveRecord::Forbidden unless res.visible?(roles)
res
end
page_size
end
+ def self.default_resource_picture_page_size
+ 125
+ end
+
+ def self.resource_picture_max_page_size
+ 100
+ end
+
+ def self.resource_picture_page_size prm = self.default_resource_picture_page_size
+ page_size = prm.to_i
+ page_size = self.resource_picture_max_page_size if page_size > self.resource_picture_max_page_size
+ page_size = self.default_resource_picture_page_size if page_size < 1
+ page_size
+ end
+
def self.visible_count
Author.count
end