From a2ed7d2793bb01c6eda3ffac609a75d2823d0099 Mon Sep 17 00:00:00 2001 From: AI-Mozi Date: Sat, 20 Jan 2024 16:49:27 +0100 Subject: [PATCH] add `Delete` and `Delete All` buttons for db records --- app.rb | 1 + app/db.rb | 52 +++++++++++++++++++++++++++++++++++++++++ views/_delete.erb | 4 ++++ views/_delete_all.erb | 4 ++++ views/db/urls/index.erb | 5 +++- views/db/urls/show.erb | 6 ++++- 6 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 views/_delete.erb create mode 100644 views/_delete_all.erb diff --git a/app.rb b/app.rb index efea414..6d1a248 100644 --- a/app.rb +++ b/app.rb @@ -72,6 +72,7 @@ class App < Sinatra::Base configure do enable :sessions + enable :method_override register Sinatra::Flash helpers Sinatra::ContentFor helpers Helpers::HTML diff --git a/app/db.rb b/app/db.rb index fca1347..474f68e 100644 --- a/app/db.rb +++ b/app/db.rb @@ -493,4 +493,56 @@ class App < Sinatra::Base halt 404 end end + + { + host_names: Ronin::DB::HostName, + asns: Ronin::DB::ASN, + ip_addresses: Ronin::DB::IPAddress, + mac_addresses: Ronin::DB::MACAddress, + open_ports: Ronin::DB::OpenPort, + ports: Ronin::DB::Port, + services: Ronin::DB::Service, + urls: Ronin::DB::URL, + url_schemes: Ronin::DB::URLScheme, + url_query_param_names: Ronin::DB::URLQueryParamName, + email_addresses: Ronin::DB::EmailAddress, + user_names: Ronin::DB::UserName, + passwords: Ronin::DB::Password, + credentials: Ronin::DB::Credential, + advisories: Ronin::DB::Advisory, + softwares: Ronin::DB::Software, + software_vendors: Ronin::DB::SoftwareVendor, + oses: Ronin::DB::OS, + vulns: Ronin::DB::WebVuln, + phone_numbers: Ronin::DB::PhoneNumber, + street_addresses: Ronin::DB::StreetAddress, + organizations: Ronin::DB::Organization, + people: Ronin::DB::Person + }.each do |name, model| + delete "/db/#{name}" do + if model.destroy_all + flash[:success] = "Records deleted successfully." + else + flash[:danger] = "Failed to delete records." + end + + redirect "/db/#{name}" + end + + delete "/db/#{name}/:id" do + @record = model.find(params[:id]) + + if @record + if @record.destroy + flash[:success] = "Record deleted successfully." + + redirect "/db/#{name}" + else + flash[:danger] = "Failed to delete record." + end + else + halt 404 + end + end + end end diff --git a/views/_delete.erb b/views/_delete.erb new file mode 100644 index 0000000..0fcaaf9 --- /dev/null +++ b/views/_delete.erb @@ -0,0 +1,4 @@ +
+ + +
diff --git a/views/_delete_all.erb b/views/_delete_all.erb new file mode 100644 index 0000000..5d868fc --- /dev/null +++ b/views/_delete_all.erb @@ -0,0 +1,4 @@ +
+ + +
diff --git a/views/db/urls/index.erb b/views/db/urls/index.erb index 79f80a3..e408f8a 100644 --- a/views/db/urls/index.erb +++ b/views/db/urls/index.erb @@ -7,7 +7,10 @@ <% end %> -

URLs

+
+

URLs

+ <%= partial(:delete_all, path: "urls") %> +
<% @urls.each do |url| %>

<%=h url %>

diff --git a/views/db/urls/show.erb b/views/db/urls/show.erb index 48426d8..516bcf0 100644 --- a/views/db/urls/show.erb +++ b/views/db/urls/show.erb @@ -8,7 +8,11 @@ <% end %> -

URL: <%=h @url %>

+ +
+

URL: <%=h @url %>

+ <%= partial(:delete, record: @url, path: "urls") %> +