Module: Sanitizer

Included in:
Atome
Defined in:
lib/atome/kernel/generators/sanitizer.rb

Overview

use to sanitize and secure user input

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.default_paramsObject



17
18
19
# File 'lib/atome/kernel/generators/sanitizer.rb', line 17

def self.default_params
  @default_params
end

Instance Method Details

#add_essential_drm(params) ⇒ Object



38
39
40
41
42
43
44
45
46
# File 'lib/atome/kernel/generators/sanitizer.rb', line 38

def add_essential_drm(params)
  essential_drm = { authorisation: { read: [Atome.current_user], write: [Atome.current_user] },
                    atome: { read: [:all], write: [:me] } }
  params[:drm] = if params[:drm]
                   essential_drm.merge(params[:drm])
                 else
                   essential_drm
                 end
end

#add_essential_properties(atome_type, params) ⇒ Object



59
60
61
62
63
64
65
66
67
# File 'lib/atome/kernel/generators/sanitizer.rb', line 59

def add_essential_properties(atome_type, params)
  params[:id] = add_missing_id(atome_type, params) unless params[:id]
  # FIXME : inject this in async mode to avoid big lag!
  params[:drm] = add_essential_drm(params) unless params[:drm]

  render = Genesis.default_value[:render]
  params[:render] = render unless params[:render]
  check_parent(params)
end

#add_missing_id(atome_type, params) ⇒ Object



54
55
56
57
# File 'lib/atome/kernel/generators/sanitizer.rb', line 54

def add_missing_id(atome_type, params)
  type = params[:type] || atome_type
  "#{type}_#{Universe.atomes.length}"
end

#check_parent(params) ⇒ Object



48
49
50
51
52
# File 'lib/atome/kernel/generators/sanitizer.rb', line 48

def check_parent(params)
  parent = id || :eDen
  params[:parent] = parent unless params[:parent]
  params
end

#sanitizer(params) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
# File 'lib/atome/kernel/generators/sanitizer.rb', line 26

def sanitizer(params)
  # TODO: write sanitizer scheme

  # we reorder id and place it a the beginning of the hash before render
  id_found = params.delete(:id)
  params = { id: id_found }.merge(params)

  # we reorder render and place it a the beginning of the hash
  render_found = params.delete(:render)
  { render: render_found }.merge(params)
end

#validation(atome_instance_var) ⇒ Object



21
22
23
24
# File 'lib/atome/kernel/generators/sanitizer.rb', line 21

def validation(atome_instance_var)
  # TODO: write validation scheme
  true if atome_instance_var
end