validates :classname, :presence => true, :length => {:maximum => 50}
validates :picture_id, :presence => true, :numericality => true, :existence => {:both => false}
+ before_validation :valid_encode
+
+ def valid_encode
+ ['artist_name', 'classname', 'credit', 'settings'].each do |a|
+ next if attributes[a] == nil
+ raise Pettanr::BadRequest unless attributes[a].valid_encoding?
+ end
+ end
+
def supply_default
end
self.attributes = attr
end
- def own? ar
- return false unless ar.is_a?(Artist)
- ar.id == self.artist_id
+ def own? roles
+ roles = [roles] unless roles.respond_to?(:each)
+ ar = ResourcePicture.get_artist_from_roles roles
+ return false unless ar
+ self.artist_id == ar.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 resource_reader_role_check(roles)
end
true
end
end
def self.default_page_size
- 25
+ 125
end
def self.max_page_size
ResourcePicture.find(:all, opt)
end
- def self.show rid, au
+ def self.show rid, roles
opt = {}
opt.merge!(self.show_opt)
r = ResourcePicture.find(rid, opt)
- raise ActiveRecord::Forbidden unless r.visible?(au)
+ raise ActiveRecord::Forbidden unless r.visible?(roles)
r
end
res = false
self.overwrite self.original_picture
ResourcePicture.transaction do
+ self.original_picture.published_at = Time.now
+ self.original_picture.stopped_at = nil
+ raise ActiveRecord::Rollback unless self.original_picture.save
pc = self.new_picture imager
if pc
self.picture_id = pc.id
def unpublish
res = false
ResourcePicture.transaction do
+ self.original_picture.published_at = nil
+ self.original_picture.stopped_at = Time.now
+ raise ActiveRecord::Rollback unless self.original_picture.save
begin
PictureIO.resource_picture_io.delete(self.filename) if PictureIO.resource_picture_io.exist?(self.filename)
PictureIO.resource_picture_io.delete(self.filename, 'full') if PictureIO.resource_picture_io.exist?(self.filename, 'full')
ResourcePicture.count
end
+ def picture_data
+ Base64.encode64(self.restore 'full')
+ end
+
def credit_template
"#{self.classname.tableize}/attributes/credit"
end