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?
end
- def overwrite
+ def overwrite uid
+ self.user_id = uid
end
- def own? author
- return false unless author
- self.id == author.id
+ 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? author
- true
+ def visible? roles
+ if MagicNumber['run_mode'] == 0
+ return false unless guest_role_check(roles)
+ else
+ return false unless reader_role_check(roles)
+ end
+ 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
end
def self.default_comic_page_size
- 30
+ 25
end
def self.comic_max_page_size
- 200
+ 100
end
def self.comic_page_size prm = self.default_comic_page_size
end
def self.default_story_page_size
- 30
+ 25
end
def self.story_max_page_size
- 200
+ 100
end
def self.story_page_size prm = self.default_story_page_size
end
def self.default_panel_page_size
- 30
+ 25
end
def self.panel_max_page_size
- 200
+ 100
end
def self.panel_page_size prm = self.default_panel_page_size
end
def self.default_panel_picture_page_size
- 30
+ 25
end
def self.panel_picture_max_page_size
- 200
+ 100
end
def self.panel_picture_page_size prm = self.default_panel_picture_page_size
end
def self.default_ground_picture_page_size
- 30
+ 25
end
def self.ground_picture_max_page_size
- 200
+ 100
end
def self.ground_picture_page_size prm = self.default_ground_picture_page_size
end
def self.default_ground_color_page_size
- 30
+ 25
end
def self.ground_color_max_page_size
- 200
+ 100
end
def self.ground_color_page_size prm = self.default_ground_color_page_size
end
def self.default_panel_color_page_size
- 30
+ 25
end
def self.panel_color_max_page_size
- 200
+ 100
end
def self.panel_color_page_size prm = self.default_panel_color_page_size
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