Class: ProxES::Permission

Inherits:
Sequel::Model
  • Object
show all
Includes:
Ditty::Base
Defined in:
lib/proxes/models/permission.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.from_audit_log(audit_log) ⇒ Object



61
62
63
64
65
66
67
68
69
70
71
# File 'lib/proxes/models/permission.rb', line 61

def from_audit_log(audit_log)
  return {} if audit_log.details.nil?

  match = audit_log.details.match(/^(\w)+ (\S+)/)
  return {} if match.nil?

  {
    verb: match[1],
    path: match[2]
  }
end

.verbsObject



57
58
59
# File 'lib/proxes/models/permission.rb', line 57

def verbs
  %w[GET POST PUT DELETE HEAD OPTIONS TRACE]
end

Instance Method Details

#index_regexObject



41
42
43
# File 'lib/proxes/models/permission.rb', line 41

def index_regex
  regex index
end

#pattern_regexObject



37
38
39
# File 'lib/proxes/models/permission.rb', line 37

def pattern_regex
  regex pattern
end

#validateObject



29
30
31
32
33
34
35
# File 'lib/proxes/models/permission.rb', line 29

def validate
  super
  validates_presence %i[verb pattern]
  validates_presence :role_id unless user_id
  validates_presence :user_id unless role_id
  validates_includes self.class.verbs, :verb
end