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.
Files changed (2) hide show
  1. data/lib/audited_logfile.rb +63 -0
  2. 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: