class Colaborator

Clase para los usuarios de tipo “colaborador”. Es subclase de User, por lo que su tabla es users.

Muchos métodos de esta clase se definen en #User. Aquí se sobreescriben los que sea necesario por diferente comportamiento con aquél

Public Class Methods

inherited_permissions() click to toggle source

Permisos atribuidos al usuario por el role “Colaborador”

# File app/models/colaborator.rb, line 62
def self.inherited_permissions
  [{:module => "news", :action => "create"}, {:module => "news", :action => "complete"}]
end

Public Instance Methods

can?(perm_type, doc_type) click to toggle source

Indica si el colaborador tiene permiso de tipo perm_type en los contenidos de tipo doc_type. Los tipos de contenidos y los correspondientes permisos se pueden consultar en #Permission

Ejemplos:

  • current_user.can?(“create”, “news”)

  • current_user.can?(“administer”, “permissions”)

# File app/models/colaborator.rb, line 57
def can?(perm_type, doc_type)
  (perm_type.eql?("complete") && doc_type.eql?("news")) || permission?(perm_type, doc_type)
end
can_access?(doc_type) click to toggle source

Indica si tiene permiso para acceder a la administración de los recursos de tipo doc_type.

Ejemplos:

  • current_user.can_access?(“news”)

  • current_user.can_access?(“photos”)

# File app/models/colaborator.rb, line 32
def can_access?(doc_type)
  ["news", "photos", "videos", "stream_flows"].include?(doc_type)
end
can_create?(doc_type) click to toggle source

Indica si puede crear recursos de tipo doc_type.

Ejemplos:

  • current_user.can_create?(“news”)

  • current_user.can_create?(“photos”)

# File app/models/colaborator.rb, line 48
def can_create?(doc_type)
  self.can_access?(doc_type) || doc_type.eql?("comments")
end
can_edit?(doc_type) click to toggle source

Indica si puede modificar recursos de tipo doc_type.

Ejemplos:

  • current_user.can_edit?(“news”)

  • current_user.can_edit?(“photos”)

# File app/models/colaborator.rb, line 40
def can_edit?(doc_type)
  self.can_access?(doc_type)
end

Protected Instance Methods

reset_unnecessary_fields() click to toggle source

Vacia los campos irrelevantes para este tipo de usuario Se llama desde before_save

# File app/models/colaborator.rb, line 69
def reset_unnecessary_fields
  self.department_id = nil
  self.media = nil
  self.raw_location = nil
  self.lat = nil
  self.lng = nil
  self.city = nil
  self.state = nil
  self.country_code = nil
  self.zip = nil
  self.photo_file_name = nil
  self.photo_content_type = nil
  self.photo_file_size = nil
  self.photo_updated_at = nil
  self.url = nil
  self.organization = nil
  self.stream_flow_ids = []
  self.public_role_es = nil
  self.public_role_eu = nil
  self.public_role_en = nil
  self.gc_id = nil
  self.description_es = nil
  self.description_eu = nil
  self.description_en = nil
  self.politician_has_agenda = nil
end