Class DepartmentMember
In: app/models/department_member.rb
Parent: User

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

Methods

Public Instance methods

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")

[Source]

    # File app/models/department_member.rb, line 12
12:   def can_access?(doc_type)
13:     ["events"].include?(doc_type)
14:   end

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

[Source]

    # File app/models/department_member.rb, line 34
34:   def can_create?(doc_type)
35:     case doc_type
36:     when 'schedule_events'
37:       !self.editable_schedules.blank?
38:     when 'events'
39:       self.can?('create_private', 'events') || self.can?('create_irekia', 'events') || self.can?('create_agencia', 'events')
40:     when 'comments'
41:       self.can?('create', 'comments') || self.can?('official', 'comments') 
42:     else
43:       false
44:     end
45:   end

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.

[Source]

    # File app/models/department_member.rb, line 19
19:   def can_edit?(doc_type)
20:     case doc_type
21:     when 'schedule_events'
22:       !self.editable_schedules.blank?
23:     when 'events'
24:       self.can?('create_private', 'events') || self.can?('create_irekia', 'events') || self.can?('create_agencia', 'events')
25:     when 'comments'
26:       self.can?('edit', 'comments')
27:     else
28:       false
29:     end
30:   end

Protected Instance methods

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

[Source]

    # File app/models/department_member.rb, line 50
50:     def empty_unnecessary_fields
51:       self.media = nil
52:       self.raw_location = nil
53:       self.lat = nil
54:       self.lng = nil
55:       self.city = nil
56:       self.state = nil
57:       self.country_code = nil
58:       self.zip = nil
59:       self.photo_file_name = nil
60:       self.photo_content_type = nil
61:       self.photo_file_size = nil
62:       self.photo_updated_at = nil
63:       self.url = nil
64:       self.organization = nil
65:       self.stream_flow_ids = []
66:     end

[Validate]