Class Colaborator
In: app/models/colaborator.rb
Parent: User

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

Methods

Public Class methods

Permisos atribuidos al usuario por el role "Colaborador"

[Source]

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

Public Instance methods

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

[Source]

    # File app/models/colaborator.rb, line 38
38:   def can?(perm_type, doc_type)
39:     (perm_type.eql?("complete") && doc_type.eql?("news")) || permission?(perm_type, doc_type)
40:   end

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/colaborator.rb, line 13
13:   def can_access?(doc_type)
14:     ["news", "photos", "videos"].include?(doc_type)
15:   end

Indica si puede crear recursos de tipo doc_type.

Ejemplos:

  • current_user.can_create?("news")
  • current_user.can_create?("photos")

[Source]

    # File app/models/colaborator.rb, line 29
29:   def can_create?(doc_type)
30:     self.can_access?(doc_type) || doc_type.eql?("comments")
31:   end

Indica si puede modificar recursos de tipo doc_type.

Ejemplos:

  • current_user.can_edit?("news")
  • current_user.can_edit?("photos")

[Source]

    # File app/models/colaborator.rb, line 21
21:   def can_edit?(doc_type)
22:     self.can_access?(doc_type)
23:   end

Protected Instance methods

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

[Source]

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

[Validate]