Browse Source

custom stamping

pull/1/head
Nicolae Claudius 11 years ago
parent
commit
944b7ae77e
  1. 7
      Gemfile
  2. 92
      Gemfile.lock
  3. 11
      app/controllers/users_controller.rb
  4. 19
      app/models/concerns/stampable.rb
  5. 2
      app/models/domain.rb
  6. 2
      app/models/permission.rb
  7. 2
      app/models/record.rb
  8. 5
      app/models/user.rb

7
Gemfile

@ -1,11 +1,11 @@
source 'http://rubygems.org'
# Core
gem 'rails', '4.1.1'
gem 'rails', '4.0.5'
gem 'mysql2', '~> 0.3.13'
# Auth
gem 'devise', '~> 3.2.2'
gem 'devise', '~> 3.1.1'
gem 'omniauth', '~> 1.2.1'
gem 'omniauth-google-oauth2', '~> 0.2.2'
gem 'cancan', '= 1.6.7'
@ -14,7 +14,6 @@ gem 'switch_user', '~> 0.9.3'
# ActiveRecord
gem 'squeel', '~> 1.1.0'
gem 'sentient_model', '~> 1.0.4'
gem 'userstamp', '~> 2.0.2', github: 'kimkong/userstamp'
gem 'nilify_blanks', '~> 1.0.2'
gem 'active-model-email-validator', '~> 1.0.2'
gem 'concerned_with', '~> 0.1.0'
@ -38,7 +37,7 @@ gem 'rails_config', '~> 0.4.2'
gem 'rails-settings-cached', '~> 0.4.0'
# Other
gem 'acts_as_nested_interval', '~> 0.1.0'
gem 'acts_as_nested_interval', '~> 0.1.1'
gem 'seedbank', '~> 0.3.0'
gem 'unicorn', '~> 4.8.3'
gem 'dalli', '~> 2.7.0'

92
Gemfile.lock

@ -17,12 +17,6 @@ GIT
specs:
navigasmic (0.5.6)
GIT
remote: git://github.com/kimkong/userstamp.git
revision: fbb35ccb5004bb04f87e01cbe9b7a5ccdd06b856
specs:
userstamp (2.0.2)
PATH
remote: vendor/cache/active_scaffold
specs:
@ -32,45 +26,45 @@ PATH
GEM
remote: http://rubygems.org/
specs:
actionmailer (4.1.1)
actionpack (= 4.1.1)
actionview (= 4.1.1)
actionmailer (4.0.5)
actionpack (= 4.0.5)
mail (~> 2.5.4)
actionpack (4.1.1)
actionview (= 4.1.1)
activesupport (= 4.1.1)
actionpack (4.0.5)
activesupport (= 4.0.5)
builder (~> 3.1.0)
erubis (~> 2.7.0)
rack (~> 1.5.2)
rack-test (~> 0.6.2)
actionview (4.1.1)
activesupport (= 4.1.1)
builder (~> 3.1)
erubis (~> 2.7.0)
active-model-email-validator (1.0.2)
activemodel
mail
activemodel (4.1.1)
activesupport (= 4.1.1)
builder (~> 3.1)
activerecord (4.1.1)
activemodel (= 4.1.1)
activesupport (= 4.1.1)
arel (~> 5.0.0)
activesupport (4.1.1)
activemodel (4.0.5)
activesupport (= 4.0.5)
builder (~> 3.1.0)
activerecord (4.0.5)
activemodel (= 4.0.5)
activerecord-deprecated_finders (~> 1.0.2)
activesupport (= 4.0.5)
arel (~> 4.0.0)
activerecord-deprecated_finders (1.0.3)
activesupport (4.0.5)
i18n (~> 0.6, >= 0.6.9)
json (~> 1.7, >= 1.7.7)
minitest (~> 5.1)
minitest (~> 4.2)
multi_json (~> 1.3)
thread_safe (~> 0.1)
tzinfo (~> 1.1)
tzinfo (~> 0.3.37)
acts_as_nested_interval (0.1.1)
rails (>= 3.2.1, < 5)
addressable (2.3.6)
arel (5.0.1.20140414130214)
arel (4.0.2)
aws-ses (0.5.0)
builder
mail (> 2.2.5)
mime-types
xml-simple
bcrypt (3.1.7)
bcrypt-ruby (3.1.5)
bcrypt (>= 3.1.3)
better_errors (1.1.0)
coderay (>= 1.0.0)
erubis (>= 2.6.6)
@ -78,7 +72,7 @@ GEM
debug_inspector (>= 0.0.1)
bootstrap-sass (3.1.1.1)
sass (~> 3.2)
builder (3.2.2)
builder (3.1.4)
bullet (4.9.0)
activesupport
uniform_notifier (~> 1.6.0)
@ -114,8 +108,8 @@ GEM
debugger-ruby_core_source (1.3.5)
detect_timezone_rails (0.0.5)
railties (>= 3.1)
devise (3.2.4)
bcrypt (~> 3.0)
devise (3.1.2)
bcrypt-ruby (~> 3.0)
orm_adapter (~> 0.1)
railties (>= 3.2.6, < 5)
thread_safe (~> 0.1)
@ -164,7 +158,7 @@ GEM
activemodel (>= 3.2, < 5)
mime-types (1.25.1)
mini_portile (0.6.0)
minitest (5.3.4)
minitest (4.7.5)
multi_json (1.10.1)
multi_xml (0.5.5)
multipart-post (2.0.0)
@ -209,16 +203,14 @@ GEM
rack (~> 1.3)
rack-test (0.6.2)
rack (>= 1.0)
rails (4.1.1)
actionmailer (= 4.1.1)
actionpack (= 4.1.1)
actionview (= 4.1.1)
activemodel (= 4.1.1)
activerecord (= 4.1.1)
activesupport (= 4.1.1)
rails (4.0.5)
actionmailer (= 4.0.5)
actionpack (= 4.0.5)
activerecord (= 4.0.5)
activesupport (= 4.0.5)
bundler (>= 1.3.0, < 2.0)
railties (= 4.1.1)
sprockets-rails (~> 2.0)
railties (= 4.0.5)
sprockets-rails (~> 2.0.0)
rails-settings-cached (0.4.1)
rails (>= 4.0.0)
rails_admin (0.6.2)
@ -237,9 +229,9 @@ GEM
sass-rails (~> 4.0)
rails_config (0.4.2)
activesupport (>= 3.0)
railties (4.1.1)
actionpack (= 4.1.1)
activesupport (= 4.1.1)
railties (4.0.5)
actionpack (= 4.0.5)
activesupport (= 4.0.5)
rake (>= 0.8.7)
thor (>= 0.18.1, < 2.0)
raindrops (0.13.0)
@ -280,7 +272,7 @@ GEM
multi_json (~> 1.0)
rack (~> 1.0)
tilt (~> 1.1, != 1.3.0)
sprockets-rails (2.1.3)
sprockets-rails (2.0.1)
actionpack (>= 3.0)
activesupport (>= 3.0)
sprockets (~> 2.8)
@ -303,8 +295,7 @@ GEM
polyglot (>= 0.3.1)
turbolinks (2.2.2)
coffee-rails
tzinfo (1.1.0)
thread_safe (~> 0.1)
tzinfo (0.3.39)
uglifier (2.4.0)
execjs (>= 0.3.0)
json (>= 1.8.0)
@ -327,7 +318,7 @@ PLATFORMS
DEPENDENCIES
active-model-email-validator (~> 1.0.2)
active_scaffold (~> 3.4.0.rc)!
acts_as_nested_interval (~> 0.1.0)
acts_as_nested_interval (~> 0.1.1)
aws-ses (~> 0.5.0)
better_errors (= 1.1.0)
binding_of_caller (= 0.7.2)
@ -342,7 +333,7 @@ DEPENDENCIES
database_rewinder (~> 0.2.0)
debase (~> 0.0.7)
detect_timezone_rails (~> 0.0.3)
devise (~> 3.2.2)
devise (~> 3.1.1)
factory_girl_rails (~> 4.4.1)
faker (~> 1.3.0)
font-awesome-rails (~> 4.1.0.0)
@ -359,7 +350,7 @@ DEPENDENCIES
omniauth-google-oauth2 (~> 0.2.2)
paper_trail (~> 3.0.0)
quiet_assets (~> 1.0.1)
rails (= 4.1.1)
rails (= 4.0.5)
rails-settings-cached (~> 0.4.0)
rails_admin (~> 0.6.1)
rails_config (~> 0.4.2)
@ -374,6 +365,5 @@ DEPENDENCIES
turbolinks (~> 2.2.1)
uglifier (~> 2.4.0)
unicorn (~> 4.8.3)
userstamp (~> 2.0.2)!
validates_hostname (~> 1.0.0)!
webshims-rails (~> 1.12.2)

11
app/controllers/users_controller.rb

@ -1,7 +1,7 @@
class UsersController < ApplicationController
before_filter :authenticate_user!
before_filter :set_stampers
include Userstamp
before_filter :set_user_current
after_filter :unset_user_current
layout :scoped_layout
rescue_from CanCan::AccessDenied, ActiveScaffold::ActionNotAllowed do |exception|
@ -11,9 +11,12 @@ class UsersController < ApplicationController
protected
def set_stampers
def set_user_current
User.current = current_user
User.stamper = current_user
end
def unset_user_current
User.current = nil
end
def ensure_nested_under_domain

19
app/models/concerns/stampable.rb

@ -0,0 +1,19 @@
module Stampable
extend ActiveSupport::Concern
included do
belongs_to :creator, :class_name => 'User'
belongs_to :updator, :class_name => 'User'
before_create :set_creator_attribute
before_save :set_updator_attribute
end
def set_creator_attribute
self.creator = User.current
end
def set_updator_attribute
self.updator = User.current
end
end

2
app/models/domain.rb

@ -1,7 +1,7 @@
class Domain < ActiveRecord::Base
self.inheritance_column = :sti_disabled
nilify_blanks
stampable
include Stampable
has_paper_trail
# optional IP for create form, results in a type A record

2
app/models/permission.rb

@ -1,5 +1,5 @@
class Permission < ActiveRecord::Base
stampable
include Stampable
has_paper_trail
belongs_to :domain, :inverse_of => :permissions

2
app/models/record.rb

@ -1,5 +1,5 @@
class Record < ActiveRecord::Base
stampable
include Stampable
belongs_to :domain, :inverse_of => :records
belongs_to :user, :inverse_of => :records

5
app/models/user.rb

@ -1,7 +1,6 @@
class User < ActiveRecord::Base
include SentientModel
model_stamper
stampable
include Stampable
has_paper_trail
# Include default devise modules. Others available are:
@ -80,10 +79,8 @@ class User < ActiveRecord::Base
def self.do_as(user)
self.current = user
self.stamper = user
yield
self.current = nil
self.reset_stamper
end
protected

Loading…
Cancel
Save