39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
# File 'lib/newrelic_security/instrumentation-security/mongo/chain.rb', line 39
def self.instrument!
::Mongo::Collection::View.class_eval do
include NewRelic::Security::Instrumentation::Mongo::Collection::View
alias_method :update_one_without_security, :update_one
def update_one(spec, opts = {})
retval = nil
event = update_one_on_enter(spec, opts) { retval = update_one_without_security(spec, opts) }
update_one_on_exit(event) { return retval }
end
alias_method :update_many_without_security, :update_many
def update_many(spec, opts = {})
retval = nil
event = update_many_on_enter(spec, opts) { retval = update_many_without_security(spec, opts) }
update_many_on_exit(event) { return retval }
end
alias_method :delete_one_without_security, :delete_one
def delete_one(opts = {})
retval = nil
event = delete_one_on_enter(opts) { retval = delete_one_without_security(opts) }
delete_one_on_exit(event) { return retval }
end
alias_method :find_one_and_delete_without_security, :find_one_and_delete
def find_one_and_delete(opts = {})
retval = nil
event = find_one_and_delete_on_enter(opts) { retval = find_one_and_delete_without_security(opts) }
find_one_and_delete_on_exit(event) { return retval }
end
alias_method :delete_many_without_security, :delete_many
def delete_many(opts = {})
retval = nil
event = delete_many_on_enter(opts) { retval = delete_many_without_security(opts) }
delete_many_on_exit(event) { return retval }
end
alias_method :replace_one_without_security, :replace_one
def replace_one(replacement, opts = {})
retval = nil
event = replace_one_on_enter(replacement, opts) { retval = replace_one_without_security(replacement, opts) }
replace_one_on_exit(event) { return retval }
end
alias_method :find_one_and_update_without_security, :find_one_and_update
def find_one_and_update(document, opts = {})
retval = nil
event = find_one_and_update_on_enter(document, opts) { retval = find_one_and_update_without_security(document, opts) }
find_one_and_update_on_exit(event) { return retval }
end
end
end
|