audited_logfile 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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: