AuditRails

An action based auditor, which has internal as well as outgoing link tracking.

It is inspired from many great audit gems in rails community that audits model and I was looking for a gem which can audit based on actions as well as can audit link tracking. This gem just serve this purpose.

Pre-requisites:

For rails 3.1.x and ruby 1.9.3:

gem install audit_rails

or in application’s Gemfile add:

gem ‘audit_rails’

Install

rails g audit_rails:install

  • To add audit migration:

rake audit_rails:install:migrations

  • Add audit.js to application.js file:

//= require audit_rails/audit

  • To add additional attributes to Audit (let’s say book_id):

  1. Add attributes to migration generated from above rake task

  2. Inherit from AuditRails::Audit:

    #MyApp/app/models/audit.rb
    class Audit < AuditRails::Audit
      attr_accessible :action, :controller, :description, :user_name, 
      :book_id
    
      #add associations as usual:
      belongs_to :book
    end
    
  • To override controller’s add_to_audit method (or the helper method), simply re-implement in application_controller.rb

  • To track user login (one per day), override current_user method in application controller, e.g.:

    def current_user
      add_to_audit('login', 'sessions', "John Smith")
      super
    end
    
  • To see all audits go to <app-url>/audit_rails/audits

  • To download the audit report as xls file:

    • Add this to initializers/mime_types.rb

      Mime::Type.register "application/vnd.ms-excel", :xls
      
    • Use below link in views:

      link_to audit_rails.audits_path(:format => "xls")
      

Changelog

github.com/gouravtiwari/audit_rails/blob/master/README.rdoc

Contribute

You are welcome to contribute and add more feature to this gem. I have added rspec and guard to it to run tests quickly. So running specs shouldn’t be a problem.

Please fork it, add specs and send a pull request!

License

This project rocks and uses MIT-LICENSE.