class DepartmentMember

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

Public Instance Methods

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/department_member.rb, line 31
def can_access?(doc_type)
  ["events"].include?(doc_type)
end
can_create?(doc_type) click to toggle source

Indica si el usuario puede crear contenidos de tipo doc_type Los tipos de contenido disponibles se pueden consultar en #Permission

# File app/models/department_member.rb, line 53
def can_create?(doc_type)
  case doc_type
  when 'schedule_events'
    !self.editable_schedules.blank?
  when 'events'
    self.can?('create_private', 'events') || self.can?('create_irekia', 'events')
  when 'comments'
    self.can?('create', 'comments') || self.can?('official', 'comments') 
  else
    false
  end
end
can_edit?(doc_type) click to toggle source

Indica si puede modificar recursos de tipo doc_type. Los miembros de los departamentos no pueden modificar ni crear recursos compartidos. Sólo tendrán acceso a la agenda privada de su departamento.

# File app/models/department_member.rb, line 38
def can_edit?(doc_type)
  case doc_type
  when 'schedule_events'
    !self.editable_schedules.blank?
  when 'events'
    self.can?('create_private', 'events') || self.can?('create_irekia', 'events')
  when 'comments'
    self.can?('edit', 'comments')
  else
    false
  end
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/department_member.rb, line 69
def reset_unnecessary_fields
  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