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



32
33
34
35
36
37
38
39
40
# File 'lib/proxes/models/permission.rb', line 32

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



28
29
30
# File 'lib/proxes/models/permission.rb', line 28

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

Instance Method Details

#validateObject



20
21
22
23
24
25
# File 'lib/proxes/models/permission.rb', line 20

def validate
  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