audit_trails 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +4 -0
- data/Rakefile +34 -0
- data/app/controllers/audit_trails/application_controller.rb +5 -0
- data/app/controllers/audit_trails/home_controller.rb +24 -0
- data/app/helpers/audit_trails/application_helper.rb +4 -0
- data/app/helpers/audit_trails/home_helper.rb +4 -0
- data/app/models/audit_trails/audit.rb +15 -0
- data/app/models/audit_trails/audit_back_log.rb +5 -0
- data/app/views/audit_trails/home/index.html.erb +42 -0
- data/app/views/hlayouts/audit_trails/application.html.erb +14 -0
- data/config/routes.rb +3 -0
- data/db/migrate/20131223143623_create_audit_trails_audits.rb +40 -0
- data/lib/audit_trails/ar_enhanced.rb +47 -0
- data/lib/audit_trails/audit_db.rb +22 -0
- data/lib/audit_trails/engine.rb +5 -0
- data/lib/audit_trails/version.rb +3 -0
- data/lib/audit_trails.rb +16 -0
- data/lib/tasks/audit_trails_backup.rake +31 -0
- data/lib/tasks/audit_trails_tasks.rake +38 -0
- data/test/audit_trails_test.rb +7 -0
- data/test/controllers/audit_trails/home_controller_test.rb +11 -0
- data/test/dummy/README.rdoc +29 -0
- data/test/dummy/Rakefile +6 -0
- data/test/dummy/app/assets/javascripts/application.js +13 -0
- data/test/dummy/app/assets/stylesheets/application.css +13 -0
- data/test/dummy/app/controllers/application_controller.rb +5 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/models/post.rb +2 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/backups/1_audit_trails.sql +1 -0
- data/test/dummy/backups/2_audit_trails.sql +1 -0
- data/test/dummy/backups/3_audit_trails.sql +1 -0
- data/test/dummy/bin/bundle +3 -0
- data/test/dummy/bin/rails +4 -0
- data/test/dummy/bin/rake +4 -0
- data/test/dummy/config/application.rb +23 -0
- data/test/dummy/config/boot.rb +5 -0
- data/test/dummy/config/database.yml +18 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +29 -0
- data/test/dummy/config/environments/production.rb +80 -0
- data/test/dummy/config/environments/test.rb +36 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy/config/initializers/inflections.rb +16 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +12 -0
- data/test/dummy/config/initializers/session_store.rb +3 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +23 -0
- data/test/dummy/config/routes.rb +3 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/db/migrate/20131224060120_create_posts.rb +9 -0
- data/test/dummy/db/migrate/20131227072919_create_audit_trails_audits.audit_trails.rb +40 -0
- data/test/dummy/db/schema.rb +22 -0
- data/test/dummy/db_audit_trails/database_audit_trails.yml +17 -0
- data/test/dummy/db_audit_trails/migrate/20131223143623_create_audit_trails_audits.rb +14 -0
- data/test/dummy/db_audit_trails/schema.rb +28 -0
- data/test/dummy/db_audit_trails/seeds.rb +0 -0
- data/test/dummy/log/development.log +0 -0
- data/test/dummy/public/404.html +58 -0
- data/test/dummy/public/422.html +58 -0
- data/test/dummy/public/500.html +57 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/test/fixtures/posts.yml +7 -0
- data/test/dummy/test/models/post_test.rb +7 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/0b853215499987d1639a0c28c89dd4cf +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/4de97ccf16f269f7aa802e1eaa6c98ea +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/55ee89a0ed00a92a5f5fef5bb8ede760 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/736aa3074e6b2785019f362d265c1213 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/80c6b116bf7a37d42b3f8df6b1499574 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/89884074c59294ac505e492d5d18da87 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/a4fa736d2837c0d06163d899b962ead3 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/a7d7c93c0c9fd617ffd98cffceb528a6 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/afb796add0f8e384a863ca676cda4ff1 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/c644fb9e08bf57429b244bdc81b762e0 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/da591551a38b6e823be84fd426f72a2d +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/efbb51f306f7f7aca5d3bec5eda884b3 +0 -0
- data/test/dummy/tmp/pids/server.pid +1 -0
- data/test/fixtures/audit_trails/audits.yml +11 -0
- data/test/helpers/audit_trails/home_helper_test.rb +6 -0
- data/test/integration/navigation_test.rb +10 -0
- data/test/models/audit_trails/audit_test.rb +9 -0
- data/test/test_helper.rb +15 -0
- metadata +221 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 5f5c7657ef725020c72b3237090efd5735f6d597
|
4
|
+
data.tar.gz: c094d200540132960df022bdf73c28c165b60093
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 5d236f90763c63c6d4799904e98c3f73e7c115bb5bf6c6228b206a6aa99c82d341c90233c175dd3dd0319743ec0f35418b61fe8462d0274bb0a431ccefdfa1bb
|
7
|
+
data.tar.gz: f10ecd51902b00596ede4f7dc8d28734d66b7ff88b07a048079c593948e0816646f1a7ac9f7e4d8398772fb62a9aeb08ababfaa4eea87d7e7507e2b538d3f6f9
|
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright 2013 YOURNAME
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
begin
|
2
|
+
require 'bundler/setup'
|
3
|
+
rescue LoadError
|
4
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
5
|
+
end
|
6
|
+
|
7
|
+
require 'rdoc/task'
|
8
|
+
|
9
|
+
RDoc::Task.new(:rdoc) do |rdoc|
|
10
|
+
rdoc.rdoc_dir = 'rdoc'
|
11
|
+
rdoc.title = 'AuditTrails'
|
12
|
+
rdoc.options << '--line-numbers'
|
13
|
+
rdoc.rdoc_files.include('README.rdoc')
|
14
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
15
|
+
end
|
16
|
+
|
17
|
+
APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
|
18
|
+
load 'rails/tasks/engine.rake'
|
19
|
+
|
20
|
+
|
21
|
+
|
22
|
+
Bundler::GemHelper.install_tasks
|
23
|
+
|
24
|
+
require 'rake/testtask'
|
25
|
+
|
26
|
+
Rake::TestTask.new(:test) do |t|
|
27
|
+
t.libs << 'lib'
|
28
|
+
t.libs << 'test'
|
29
|
+
t.pattern = 'test/**/*_test.rb'
|
30
|
+
t.verbose = false
|
31
|
+
end
|
32
|
+
|
33
|
+
|
34
|
+
task default: :test
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require_dependency "audit_trails/application_controller"
|
2
|
+
|
3
|
+
module AuditTrails
|
4
|
+
class HomeController < ApplicationController
|
5
|
+
def index
|
6
|
+
if params[:sql].nil?
|
7
|
+
@activities = Audit.paginate(:page => params[:page], :per_page => 2).order("id DESC")
|
8
|
+
else
|
9
|
+
begin
|
10
|
+
sql_files_path = File.join(Rails.root, 'backups')
|
11
|
+
@sql = (params[:sql].to_i == 0) ? Dir.glob("#{sql_files_path}/*.{sql}").count : params[:sql].to_i - 1
|
12
|
+
AuditBackLog.connection.execute(IO.read(File.join("#{sql_files_path}", "#{@sql}_audit_trails.sql"))) #rescue true
|
13
|
+
rescue ActiveRecord::RecordNotUnique => e
|
14
|
+
Rails.logger.info 'Tried to load already loaded sql file'
|
15
|
+
rescue Errno::ENOENT => e
|
16
|
+
Rails.logger.info e.message
|
17
|
+
@sql = nil
|
18
|
+
end
|
19
|
+
@activities = AuditBackLog.paginate(:page => params[:page], :per_page => 2).order("id DESC")
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# Todo : Database recreate on x number of entry and treat new db as active db.
|
2
|
+
# Todo : on load more request decide and implement multi-database
|
3
|
+
# TODO : Handle Audit Table Schema changes
|
4
|
+
# Todo : Remove ActiveRecord::SchemaMigration.create from Activity
|
5
|
+
# Todo : Through Test.
|
6
|
+
module AuditTrails
|
7
|
+
class Audit < ActiveRecord::Base
|
8
|
+
establish_connection AuditTrails::AuditDb.adbconf
|
9
|
+
# Fixme Associations are not working. Ask Sachin to help
|
10
|
+
belongs_to :user
|
11
|
+
belongs_to :recipient, :polymorphic => true
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
|
@@ -0,0 +1,42 @@
|
|
1
|
+
<div class="content-data stacked">
|
2
|
+
<div class="widget_header"><i class="icon-road"></i>
|
3
|
+
|
4
|
+
<h3>AuditTrails</h3>
|
5
|
+
</div>
|
6
|
+
<div class="widget_container">
|
7
|
+
<table class="table table-bordered tablesorter">
|
8
|
+
<thead>
|
9
|
+
<tr>
|
10
|
+
<th class="inline_30">Id</th>
|
11
|
+
<th>Activity</th>
|
12
|
+
<th class="inline_80">Activity on</th>
|
13
|
+
<th data-sort="false">Parameters changes</th>
|
14
|
+
<th class="inline_80">Ip Address</th>
|
15
|
+
<th class="inline_80">Activity by</th>
|
16
|
+
</tr>
|
17
|
+
</thead>
|
18
|
+
<tbody>
|
19
|
+
<% if @activities.count <= 0 %>
|
20
|
+
<tr>
|
21
|
+
<td colspan="4">No audit trail available.</td>
|
22
|
+
</tr>
|
23
|
+
<% else %>
|
24
|
+
<% @activities.each do |activity| %>
|
25
|
+
<tr>
|
26
|
+
<td><%= activity.id %></td>
|
27
|
+
<td><%= activity.key %></td>
|
28
|
+
<td><%= activity.recipient_type %>(<%= activity.recipient_id %>)</td>
|
29
|
+
<td><%= YAML.load(activity.parameters) %></td>
|
30
|
+
<td><%= activity.ip_address %></td>
|
31
|
+
<td><%= User.find(activity.user_id).username rescue 'no user' %></td>
|
32
|
+
</tr>
|
33
|
+
<% end %>
|
34
|
+
<% end %>
|
35
|
+
</tbody>
|
36
|
+
</table>
|
37
|
+
<%= will_paginate @activities %>
|
38
|
+
</div>
|
39
|
+
</div>
|
40
|
+
<% @sql ||= 0 %>
|
41
|
+
|
42
|
+
<%= link_to 'Load More...', audit_trails.root_url(sql: @sql), remote: true if @activities.total_pages == @activities.current_page and !@sql.nil? %>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>AuditTrails</title>
|
5
|
+
<%= stylesheet_link_tag "audit_trails/application", media: "all" %>
|
6
|
+
<%= javascript_include_tag "audit_trails/application" %>
|
7
|
+
<%= csrf_meta_tags %>
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
|
11
|
+
<%= yield %>
|
12
|
+
|
13
|
+
</body>
|
14
|
+
</html>
|
data/config/routes.rb
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
# This migration comes from audit_trails (originally 20131223143623)
|
2
|
+
class CreateAuditTrailsAudits < ActiveRecord::Migration
|
3
|
+
|
4
|
+
def connection
|
5
|
+
ActiveRecord::Base.establish_connection(AuditTrails::AuditDb.adbconf).connection
|
6
|
+
end
|
7
|
+
|
8
|
+
def change
|
9
|
+
# Active Audit Table
|
10
|
+
create_table :audit_trails_audits do |t|
|
11
|
+
t.string :key
|
12
|
+
t.belongs_to :recipient, :polymorphic => true
|
13
|
+
t.integer :user_id
|
14
|
+
t.text :parameters
|
15
|
+
t.string :ip_address
|
16
|
+
t.text :message
|
17
|
+
|
18
|
+
t.timestamps
|
19
|
+
end
|
20
|
+
|
21
|
+
# BackLog Audit Table
|
22
|
+
create_table :audit_trails_audits_backlogs do |t|
|
23
|
+
t.string :key
|
24
|
+
t.belongs_to :recipient, :polymorphic => true
|
25
|
+
t.integer :user_id
|
26
|
+
t.text :parameters
|
27
|
+
t.string :ip_address
|
28
|
+
t.text :message
|
29
|
+
|
30
|
+
t.timestamps
|
31
|
+
end
|
32
|
+
|
33
|
+
self.revert_connection
|
34
|
+
end
|
35
|
+
|
36
|
+
def revert_connection
|
37
|
+
ActiveRecord::Base.establish_connection(AuditTrails::AuditDb.rdbconf).connection
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module AuditTrails
|
2
|
+
class ActiveRecord::Base
|
3
|
+
# To change this template use File | Settings | File Templates.
|
4
|
+
around_create :log_create_activity, :unless => lambda { self.class.name == 'AuditTrails::Audit' }
|
5
|
+
around_update :log_update_activity, :unless => lambda { self.class.name == 'AuditTrails::Audit' }
|
6
|
+
around_destroy :log_destroy_activity, :unless => lambda { self.class.name == 'AuditTrails::Audit' }
|
7
|
+
|
8
|
+
def log_activity(key, changes, owner, ip_address, object = nil, message = nil)
|
9
|
+
begin
|
10
|
+
owner_id = owner.id rescue nil
|
11
|
+
AuditTrails::Audit.create(:key => key, :user_id => owner_id, :recipient => object,
|
12
|
+
:parameters => YAML.dump(changes), :message => message, :ip_address => ip_address)
|
13
|
+
|
14
|
+
rescue Exception => ex
|
15
|
+
Rails.logger.error ex.message
|
16
|
+
Rails.logger.error ex.backtrace
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def log_create_activity
|
21
|
+
changes = self.changes
|
22
|
+
yield
|
23
|
+
log_activity("#{self.class.name}.create", changes, current_user, get_ip_address, self) unless (self.class.name == 'ActiveRecord::SchemaMigration')
|
24
|
+
end
|
25
|
+
|
26
|
+
def log_update_activity
|
27
|
+
changes = self.changes
|
28
|
+
yield
|
29
|
+
log_activity("#{self.class.name}.update", changes, current_user, get_ip_address, self)
|
30
|
+
end
|
31
|
+
|
32
|
+
def log_destroy_activity
|
33
|
+
changes = self.changes
|
34
|
+
yield
|
35
|
+
log_activity("#{self.class.name}.destroy", changes, current_user, get_ip_address, self)
|
36
|
+
end
|
37
|
+
|
38
|
+
def current_user
|
39
|
+
Thread.current.thread_variable_get('controller').current_user rescue nil
|
40
|
+
end
|
41
|
+
|
42
|
+
def get_ip_address
|
43
|
+
Thread.current.thread_variable_get('controller').get_ip_address rescue '127.0.0.1'
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module AuditTrails
|
2
|
+
class AuditDb
|
3
|
+
def self.adbconf
|
4
|
+
begin
|
5
|
+
db_configurations = YAML::load(IO.read('config/database_audit_trails.yml'))[Rails.env]
|
6
|
+
rescue
|
7
|
+
_database = File.join(Rails.root, 'config', 'database.yml')
|
8
|
+
db_configurations = YAML::load(IO.read(_database))["audit_#{Rails.env}"]
|
9
|
+
rescue
|
10
|
+
db_configurations = YAML::load(IO.read(_database))[Rails.env]
|
11
|
+
end
|
12
|
+
db_configurations
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.rdbconf
|
16
|
+
_database = File.join(Rails.root, 'config', 'database.yml')
|
17
|
+
db_configurations = YAML::load(IO.read(_database))[Rails.env]
|
18
|
+
db_configurations
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
data/lib/audit_trails.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
require "audit_trails/engine"
|
2
|
+
require "audit_trails/version"
|
3
|
+
require "audit_trails/ar_enhanced"
|
4
|
+
require "audit_trails/audit_db"
|
5
|
+
|
6
|
+
module AuditTrails
|
7
|
+
module SystemController
|
8
|
+
def self.included(base)
|
9
|
+
base.send(:before_filter, :store_current_controller)
|
10
|
+
end
|
11
|
+
|
12
|
+
def store_current_controller
|
13
|
+
Thread.current.thread_variable_set('controller', self)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
namespace :db do
|
2
|
+
desc "swap table names and Backup Audit trails data to sql."
|
3
|
+
task :backup => [:environment] do
|
4
|
+
unless AuditTrails::Audit.count < 3
|
5
|
+
begin
|
6
|
+
base_path = Rails.root
|
7
|
+
backup_location = File.join(base_path, 'backups')
|
8
|
+
FileUtils.mkdir_p(backup_location)
|
9
|
+
filename = (Dir.glob("#{backup_location}/*.{sql}").count + 1).to_s + '_audit_trails.sql'
|
10
|
+
backup_file = File.join(backup_location, filename)
|
11
|
+
db_config = AuditTrails::Audit.connection_config
|
12
|
+
o_tblname = AuditTrails::Audit.table_name
|
13
|
+
n_tblname = AuditTrails::AuditBackLog.table_name
|
14
|
+
AuditTrails::Audit.connection.execute("delete from #{n_tblname}")
|
15
|
+
AuditTrails::Audit.connection.execute("RENAME TABLE #{o_tblname} TO temp")
|
16
|
+
AuditTrails::Audit.connection.execute("RENAME TABLE #{n_tblname} TO #{o_tblname}")
|
17
|
+
AuditTrails::Audit.connection.execute("RENAME TABLE temp TO #{n_tblname}")
|
18
|
+
`mysqldump -u#{db_config[:username]} -p#{db_config[:password]} --compact -t #{db_config[:database]} #{n_tblname} > #{backup_file}`
|
19
|
+
AuditTrails::Audit.connection.execute("delete from #{n_tblname}")
|
20
|
+
raise "Unable to make DB backup!" if ($?.to_i > 0)
|
21
|
+
#`gzip -9 #{backup_file}` #Fixme If Required.
|
22
|
+
rescue Exception => e
|
23
|
+
puts e.backtrace
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
|
@@ -0,0 +1,38 @@
|
|
1
|
+
#namespace :audit_trails do
|
2
|
+
#
|
3
|
+
# desc "Configure the variables that rails need in order to look up for the db configuration in a different folder"
|
4
|
+
# task :set_custom_db_config_paths do
|
5
|
+
# # This is the minimum required to tell rails to use a different location for all the files related to the database.
|
6
|
+
# ENV['SCHEMA'] = 'db_audit_trails/schema.rb'
|
7
|
+
# Rails.application.config.paths['db'] = ['db_audit_trails']
|
8
|
+
# Rails.application.config.paths['db/migrate'] = ['db_audit_trails/migrate']
|
9
|
+
# Rails.application.config.paths['db/seeds'] = ['db_audit_trails/seeds.rb']
|
10
|
+
# Rails.application.config.paths['config/database'] = ['db_audit_trails/database_audit_trails.yml']
|
11
|
+
# end
|
12
|
+
#
|
13
|
+
# namespace :db do
|
14
|
+
# task :drop => :set_custom_db_config_paths do
|
15
|
+
# Rake::Task["db:drop"].invoke
|
16
|
+
# end
|
17
|
+
#
|
18
|
+
# task :create => :set_custom_db_config_paths do
|
19
|
+
# Rake::Task["db:create"].invoke
|
20
|
+
# end
|
21
|
+
#
|
22
|
+
# task :migrate => :set_custom_db_config_paths do
|
23
|
+
# Rake::Task["db:migrate"].invoke
|
24
|
+
# end
|
25
|
+
#
|
26
|
+
# task :rollback => :set_custom_db_config_paths do
|
27
|
+
# Rake::Task["db:rollback"].invoke
|
28
|
+
# end
|
29
|
+
#
|
30
|
+
# task :seed => :set_custom_db_config_paths do
|
31
|
+
# Rake::Task["db:seed"].invoke
|
32
|
+
# end
|
33
|
+
#
|
34
|
+
# task :version => :set_custom_db_config_paths do
|
35
|
+
# Rake::Task["db:version"].invoke
|
36
|
+
# end
|
37
|
+
# end
|
38
|
+
#end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
== README
|
2
|
+
|
3
|
+
This README would normally document whatever steps are necessary to get the
|
4
|
+
application up and running.
|
5
|
+
|
6
|
+
Things you may want to cover:
|
7
|
+
|
8
|
+
* Ruby version
|
9
|
+
|
10
|
+
* System dependencies
|
11
|
+
|
12
|
+
* Configuration
|
13
|
+
|
14
|
+
* Database creation
|
15
|
+
|
16
|
+
* Database initialization
|
17
|
+
|
18
|
+
* How to run the test suite
|
19
|
+
|
20
|
+
* Services (job queues, cache servers, search engines, etc.)
|
21
|
+
|
22
|
+
* Deployment instructions
|
23
|
+
|
24
|
+
* ...
|
25
|
+
|
26
|
+
|
27
|
+
Please feel free to use a different markup language if you do not plan to run
|
28
|
+
<tt>rake doc:app</tt>.
|
29
|
+
|
data/test/dummy/Rakefile
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
// This is a manifest file that'll be compiled into application.js, which will include all the files
|
2
|
+
// listed below.
|
3
|
+
//
|
4
|
+
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
|
5
|
+
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
|
6
|
+
//
|
7
|
+
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
8
|
+
// compiled file.
|
9
|
+
//
|
10
|
+
// Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
|
11
|
+
// about supported directives.
|
12
|
+
//
|
13
|
+
//= require_tree .
|
@@ -0,0 +1,13 @@
|
|
1
|
+
/*
|
2
|
+
* This is a manifest file that'll be compiled into application.css, which will include all the files
|
3
|
+
* listed below.
|
4
|
+
*
|
5
|
+
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
|
6
|
+
* or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
|
7
|
+
*
|
8
|
+
* You're free to add application-wide styles to this file and they'll appear at the top of the
|
9
|
+
* compiled file, but it's generally better to create a new file per style scope.
|
10
|
+
*
|
11
|
+
*= require_self
|
12
|
+
*= require_tree .
|
13
|
+
*/
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>Dummy</title>
|
5
|
+
<%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>
|
6
|
+
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
|
7
|
+
<%= csrf_meta_tags %>
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
|
11
|
+
<%= yield %>
|
12
|
+
|
13
|
+
</body>
|
14
|
+
</html>
|
@@ -0,0 +1 @@
|
|
1
|
+
INSERT INTO `audit_trails_audits_backlogs` VALUES (1,'ActiveRecord::SchemaMigration.create',NULL,NULL,NULL,'--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess\nversion:\n- \n- 20131226084022\n','127.0.0.1',NULL,'2013-12-26 15:40:25','2013-12-26 15:40:25'),(2,'Post.create',NULL,NULL,NULL,'--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess\ncontent:\n- \n- 123414234aaa\ncreated_at:\n- \n- 2013-12-26 15:42:07.229465764 Z\nupdated_at:\n- \n- 2013-12-26 15:42:07.229465764 Z\n','127.0.0.1',NULL,'2013-12-26 15:42:07','2013-12-26 15:42:07'),(3,'Post.create',NULL,NULL,NULL,'--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess\ncontent:\n- \n- 123414234aaa\ncreated_at:\n- \n- 2013-12-26 15:42:07.942162535 Z\nupdated_at:\n- \n- 2013-12-26 15:42:07.942162535 Z\n','127.0.0.1',NULL,'2013-12-26 15:42:07','2013-12-26 15:42:07'),(4,'Post.create',NULL,NULL,NULL,'--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess\ncontent:\n- \n- 123414234aaa\ncreated_at:\n- \n- 2013-12-26 15:42:08.597295925 Z\nupdated_at:\n- \n- 2013-12-26 15:42:08.597295925 Z\n','127.0.0.1',NULL,'2013-12-26 15:42:08','2013-12-26 15:42:08'),(5,'Post.create',NULL,NULL,NULL,'--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess\ncontent:\n- \n- 123414234aaa\ncreated_at:\n- \n- 2013-12-26 15:42:09.205502322 Z\nupdated_at:\n- \n- 2013-12-26 15:42:09.205502322 Z\n','127.0.0.1',NULL,'2013-12-26 15:42:09','2013-12-26 15:42:09');
|
@@ -0,0 +1 @@
|
|
1
|
+
INSERT INTO `audit_trails_audits_backlogs` VALUES (1,'Post.create',NULL,NULL,NULL,'--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess\ncontent:\n- \n- 123414234aaa\ncreated_at:\n- \n- 2013-12-26 16:09:56.479768284 Z\nupdated_at:\n- \n- 2013-12-26 16:09:56.479768284 Z\n','127.0.0.1',NULL,'2013-12-26 16:09:56','2013-12-26 16:09:56'),(2,'Post.create',NULL,NULL,NULL,'--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess\ncontent:\n- \n- 123414234aaa\ncreated_at:\n- \n- 2013-12-26 16:09:57.250719740 Z\nupdated_at:\n- \n- 2013-12-26 16:09:57.250719740 Z\n','127.0.0.1',NULL,'2013-12-26 16:09:57','2013-12-26 16:09:57'),(3,'Post.create',NULL,NULL,NULL,'--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess\ncontent:\n- \n- 123414234aaa\ncreated_at:\n- \n- 2013-12-26 16:09:57.877478606 Z\nupdated_at:\n- \n- 2013-12-26 16:09:57.877478606 Z\n','127.0.0.1',NULL,'2013-12-26 16:09:57','2013-12-26 16:09:57'),(4,'Post.create',NULL,NULL,NULL,'--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess\ncontent:\n- \n- 123414234aaa\ncreated_at:\n- \n- 2013-12-26 16:09:58.523194152 Z\nupdated_at:\n- \n- 2013-12-26 16:09:58.523194152 Z\n','127.0.0.1',NULL,'2013-12-26 16:09:58','2013-12-26 16:09:58'),(5,'Post.create',NULL,NULL,NULL,'--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess\ncontent:\n- \n- 123414234aaa\ncreated_at:\n- \n- 2013-12-26 16:09:59.115226204 Z\nupdated_at:\n- \n- 2013-12-26 16:09:59.115226204 Z\n','127.0.0.1',NULL,'2013-12-26 16:09:59','2013-12-26 16:09:59'),(6,'Post.create',NULL,NULL,NULL,'--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess\ncontent:\n- \n- 123414234aaa\ncreated_at:\n- \n- 2013-12-26 16:09:59.692308697 Z\nupdated_at:\n- \n- 2013-12-26 16:09:59.692308697 Z\n','127.0.0.1',NULL,'2013-12-26 16:09:59','2013-12-26 16:09:59');
|
@@ -0,0 +1 @@
|
|
1
|
+
INSERT INTO `audit_trails_audits_backlogs` VALUES (6,'Post.create',NULL,NULL,NULL,'--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess\ncontent:\n- \n- 123414234aaa\ncreated_at:\n- \n- 2013-12-26 16:12:31.088958824 Z\nupdated_at:\n- \n- 2013-12-26 16:12:31.088958824 Z\n','127.0.0.1',NULL,'2013-12-26 16:12:31','2013-12-26 16:12:31'),(7,'Post.create',NULL,NULL,NULL,'--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess\ncontent:\n- \n- 123414234aaa\ncreated_at:\n- \n- 2013-12-26 16:12:31.595627751 Z\nupdated_at:\n- \n- 2013-12-26 16:12:31.595627751 Z\n','127.0.0.1',NULL,'2013-12-26 16:12:31','2013-12-26 16:12:31'),(8,'Post.create',NULL,NULL,NULL,'--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess\ncontent:\n- \n- 123414234aaa\ncreated_at:\n- \n- 2013-12-26 16:12:32.041379897 Z\nupdated_at:\n- \n- 2013-12-26 16:12:32.041379897 Z\n','127.0.0.1',NULL,'2013-12-26 16:12:32','2013-12-26 16:12:32'),(9,'Post.create',NULL,NULL,NULL,'--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess\ncontent:\n- \n- 123414234aaa\ncreated_at:\n- \n- 2013-12-26 16:12:32.482604429 Z\nupdated_at:\n- \n- 2013-12-26 16:12:32.482604429 Z\n','127.0.0.1',NULL,'2013-12-26 16:12:32','2013-12-26 16:12:32'),(10,'Post.create',NULL,NULL,NULL,'--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess\ncontent:\n- \n- 123414234aaa\ncreated_at:\n- \n- 2013-12-26 16:12:32.940809063 Z\nupdated_at:\n- \n- 2013-12-26 16:12:32.940809063 Z\n','127.0.0.1',NULL,'2013-12-26 16:12:32','2013-12-26 16:12:32'),(11,'Post.create',NULL,NULL,NULL,'--- !ruby/hash:ActiveSupport::HashWithIndifferentAccess\ncontent:\n- \n- 123414234aaa\ncreated_at:\n- \n- 2013-12-26 16:12:33.444304194 Z\nupdated_at:\n- \n- 2013-12-26 16:12:33.444304194 Z\n','127.0.0.1',NULL,'2013-12-26 16:12:33','2013-12-26 16:12:33');
|
data/test/dummy/bin/rake
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
require File.expand_path('../boot', __FILE__)
|
2
|
+
|
3
|
+
require 'rails/all'
|
4
|
+
|
5
|
+
Bundler.require(*Rails.groups)
|
6
|
+
require "audit_trails"
|
7
|
+
|
8
|
+
module Dummy
|
9
|
+
class Application < Rails::Application
|
10
|
+
# Settings in config/environments/* take precedence over those specified here.
|
11
|
+
# Application configuration should go into files in config/initializers
|
12
|
+
# -- all .rb files in that directory are automatically loaded.
|
13
|
+
|
14
|
+
# Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
|
15
|
+
# Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
|
16
|
+
# config.time_zone = 'Central Time (US & Canada)'
|
17
|
+
|
18
|
+
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
|
19
|
+
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
|
20
|
+
# config.i18n.default_locale = :de
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
development:
|
2
|
+
adapter: mysql2
|
3
|
+
encoding: utf8
|
4
|
+
database: audit_trails_development_trick
|
5
|
+
pool: 5
|
6
|
+
username: root
|
7
|
+
password: root
|
8
|
+
socket: /var/run/mysqld/mysqld.sock
|
9
|
+
|
10
|
+
audit_development:
|
11
|
+
adapter: mysql2
|
12
|
+
encoding: utf8
|
13
|
+
database: audit_trails_logs
|
14
|
+
pool: 5
|
15
|
+
username: root
|
16
|
+
password: root
|
17
|
+
socket: /var/run/mysqld/mysqld.sock
|
18
|
+
|