Add functionality to update existing BrowserDetails keys
This commit is contained in:
@@ -32,19 +32,24 @@ module Models
|
||||
end
|
||||
|
||||
#
|
||||
# Stores a key->value pair into the data store
|
||||
# Stores or updates an existing key->value pair in the data store
|
||||
#
|
||||
def self.set(session_id, detail_key, detail_value)
|
||||
# if the details already exist don't re-add them
|
||||
return nil if not get(session_id, detail_key).nil?
|
||||
|
||||
# store the returned browser details
|
||||
browserdetails = BeEF::Core::Models::BrowserDetails.new(
|
||||
:session_id => session_id,
|
||||
:detail_key => detail_key,
|
||||
browserdetails = BeEF::Core::Models::BrowserDetails.all(
|
||||
:session_id => session_id,
|
||||
:detail_key => detail_key )
|
||||
if browserdetails.nil? || browserdetails.empty?
|
||||
# store the new browser details key/value
|
||||
browserdetails = BeEF::Core::Models::BrowserDetails.new(
|
||||
:session_id => session_id,
|
||||
:detail_key => detail_key,
|
||||
:detail_value => detail_value || '')
|
||||
result = browserdetails.save
|
||||
else
|
||||
# update the browser details key/value
|
||||
result = browserdetails.update(:detail_value => detail_value || '')
|
||||
end
|
||||
|
||||
result = browserdetails.save
|
||||
# if the attempt to save the browser details fails return a bad request
|
||||
if result.nil?
|
||||
print_error "Failed to save browser details: #{detail_key}=#{detail_value}"
|
||||
|
||||
Reference in New Issue
Block a user