audited_logfile 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/audited_logfile.rb +63 -0
- metadata +62 -0
@@ -0,0 +1,63 @@
|
|
1
|
+
require 'audited'
|
2
|
+
require 'audited/adapters/active_record'
|
3
|
+
|
4
|
+
module AuditedLogfile
|
5
|
+
mattr_accessor :logfile
|
6
|
+
@@loger = nil
|
7
|
+
|
8
|
+
def self.setup
|
9
|
+
yield self
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.logfile
|
13
|
+
@@logfile || 'log/audit.log'
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.logger
|
17
|
+
unless @@loger
|
18
|
+
@@loger = Logger.new(logfile)
|
19
|
+
@@loger.level = Logger::INFO
|
20
|
+
end
|
21
|
+
@@loger
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
module Audited
|
26
|
+
module Adapters
|
27
|
+
module ActiveRecord
|
28
|
+
class Audit < ::ActiveRecord::Base
|
29
|
+
DO_NOT_LOG = true
|
30
|
+
after_create do |record|
|
31
|
+
changes = audited_changes.map { |k, v| "#{k}: #{v.is_a?(Array) ? "[#{v.first}, #{v.last}]" : v}"}.join(', ')
|
32
|
+
AuditedLogfile.logger.info "#{Time.now.iso8601(1)}, #{action.upcase}, #{user.try(:email) || 'Guest'}, #{auditable_type}, #{auditable_id}, (#{changes})"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
module ActiveRecord
|
40
|
+
class Base
|
41
|
+
class << self
|
42
|
+
alias_method :inherited_orig, :inherited
|
43
|
+
|
44
|
+
def inherited(subclass)
|
45
|
+
unless defined? subclass::DO_NOT_LOG
|
46
|
+
subclass.class_eval %(
|
47
|
+
audited :allow_mass_assignment => true
|
48
|
+
attr_protected :audit_ids
|
49
|
+
)
|
50
|
+
end
|
51
|
+
inherited_orig(subclass)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
Warden::Manager.after_authentication do |user,auth,opts|
|
58
|
+
AuditedLogfile.logger.info "#{Time.now.iso8601(1)}, SIGNIN, #{user.email}"
|
59
|
+
end
|
60
|
+
|
61
|
+
Warden::Manager.before_logout do |user,auth,scope|
|
62
|
+
AuditedLogfile.logger.info "#{Time.now.iso8601(1)}, SIGNOUT, #{user && user.email}"
|
63
|
+
end
|
metadata
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: audited_logfile
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Alexander Kiseliov
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-12-30 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: audited-activerecord
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '3.0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '3.0'
|
30
|
+
description: Audited extention to log audit
|
31
|
+
email: aakiselev@at-consulting.ru
|
32
|
+
executables: []
|
33
|
+
extensions: []
|
34
|
+
extra_rdoc_files: []
|
35
|
+
files:
|
36
|
+
- lib/audited_logfile.rb
|
37
|
+
homepage: https://github.com/at-consulting/audited_logfile
|
38
|
+
licenses: []
|
39
|
+
post_install_message:
|
40
|
+
rdoc_options: []
|
41
|
+
require_paths:
|
42
|
+
- lib
|
43
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
44
|
+
none: false
|
45
|
+
requirements:
|
46
|
+
- - ! '>='
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
49
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
requirements: []
|
56
|
+
rubyforge_project:
|
57
|
+
rubygems_version: 1.8.24
|
58
|
+
signing_key:
|
59
|
+
specification_version: 3
|
60
|
+
summary: audited_logfile
|
61
|
+
test_files: []
|
62
|
+
has_rdoc:
|