devise_account_expireable 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ NDBmYzVhOWI3Y2UwZWNjN2Q5NDc4MWM1MGI3YmFkYjI4YTYxZjA5Mg==
5
+ data.tar.gz: !binary |-
6
+ NTJiMGFmMGRhYzJlMDAwNjhjNDE5YTc4NjZjNzk2MmY5OWY3ODU2Ng==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ MTA3ODM3MzlmOWM1MDM2ZTIyYzQ5YTZiMDc0YTc3OGEwZDNlZGE4YmJiYzhj
10
+ NTFmNzM1ZWFiNjY1NmNhZjE3Yjk2MzkzYmI2NGVhMzRkOWYzZTRkNjhmMGMy
11
+ MDAzMWJhMTJlYWY1Y2JkNzRiNWRlNWVhYWQ5MTU5MjZiYzQ4ODg=
12
+ data.tar.gz: !binary |-
13
+ OTNlZTVkOTU2Y2QyMDY5ZWNiNGMxMDgxMGFkZjZhOTdjMTI0NTFiMDVlYzJk
14
+ OTZhMTlhN2UyMTQwMmIzY2MzMjMwOTFmZjMwNmYyMTQ1MWM0YmE0YzIyNTlj
15
+ NjM4YmYyZTYyMDkwZTg4NTBhYTQxM2ZkMzg5NjE2YTA2NjZhZDE=
data/README.md CHANGED
@@ -14,13 +14,65 @@ Or install it yourself as:
14
14
 
15
15
  $ gem install devise_account_expireable
16
16
 
17
- ## Usage
17
+ ## Setup and Configuration
18
18
 
19
- 1. Install the migration: `rails g devise_account_expireable`
20
- 2. `rake db:migrate`
21
- 3. Add `:account_expireable` to the devise line of you account (User) model.
22
- `devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable, :account_expireable`
23
- 4. Add a way through your admin panel of setting the attribute `:expires_at` to a date/time on the account (User) model.
19
+ 1. Generate the migration
20
+
21
+ ```
22
+ $ rails g devise_account_expireable`
23
+ ```
24
+
25
+ 2. Migrate
26
+
27
+ ```
28
+ $ rake db:migrate
29
+ ```
30
+
31
+ 3. Add `:account_expireable` to the devise line of you account (`User`) model.
32
+
33
+ ```ruby
34
+ devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable, :account_expireable`
35
+ ```
36
+
37
+ 4. (Optional) Add a way through your admin panel of setting the attribute `:expires_at` to a date/time (`DateTime`) on the account (`User`) model.
38
+
39
+ ## Expiring and Unexpiring a User account
40
+
41
+ If you want to expire User u1 now, without immediate persistence to DB:
42
+
43
+ ```ruby
44
+ u1.expire_now
45
+ ```
46
+
47
+ If you want to expire User u1 now, with immediate persistence to DB:
48
+
49
+ ```ruby
50
+ u1.expire_now!
51
+ ```
52
+
53
+ If you want to expire User u1 at a future DateTime (like DateTime.now.end_of_day), without immediate persistence to DB:
54
+
55
+ ```ruby
56
+ u1.expire_at DateTime.now.end_of_day
57
+ ```
58
+
59
+ If you want to expire User u1 at a future DateTime (like DateTime.now.end_of_day), with immediate persistence to DB:
60
+
61
+ ```ruby
62
+ u1.expire_at! DateTime.now.end_of_day
63
+ ```
64
+
65
+ If you want to unexpire User u1 now, without immediate persistence to DB:
66
+
67
+ ```ruby
68
+ u1.unexpire_now
69
+ ```
70
+
71
+ If you want to unexpire User u1 now, with immediate persistence to DB:
72
+
73
+ ```ruby
74
+ u1.unexpire_now!
75
+ ```
24
76
 
25
77
  ## Contributing
26
78
 
@@ -2,8 +2,8 @@
2
2
  require File.expand_path('../lib/devise_account_expireable/version', __FILE__)
3
3
 
4
4
  Gem::Specification.new do |gem|
5
- gem.authors = ["Justin McNally"]
6
- gem.email = ["justin@kohactive.com"]
5
+ gem.authors = ["Justin McNally", "Brendten Eickstaedt"]
6
+ gem.email = ["justin@kohactive.com", "brendten@brendteneickstaedt.com"]
7
7
  gem.description = %q{Expire a user's account at a certain date}
8
8
  gem.summary = %q{At a certain date make a user's account not work}
9
9
  gem.homepage = ""
@@ -1,16 +1,12 @@
1
1
  require "devise_account_expireable/version"
2
2
 
3
+ require 'devise_account_expireable/rails'
3
4
 
4
5
  unless defined?(Devise)
5
6
  require 'devise'
6
7
  end
7
8
 
8
- require 'devise_account_expireable'
9
-
10
9
  Devise.add_module :account_expireable, :model => 'devise_account_expireable/model'
11
10
 
12
-
13
11
  module DeviseAccountExpireable
14
12
  end
15
-
16
- require 'devise_account_expireable/rails'
@@ -1,10 +1,8 @@
1
1
  module Devise
2
2
  module Models
3
- # Trace information about your user sign in. It tracks the following columns:
3
+ # Allow for expiration date on Devise resources. Adds attribute:
4
4
 
5
- # * resource_id
6
- # * sign_in_at
7
- # * sign_out_at
5
+ # * expires_at
8
6
 
9
7
  module AccountExpireable
10
8
  extend ActiveSupport::Concern
@@ -13,16 +11,41 @@ module Devise
13
11
  expires_at.present? && expires_at < DateTime.now
14
12
  end
15
13
 
14
+ def expire_now
15
+ expire_at
16
+ end
17
+
18
+ def expire_now!
19
+ expire_at!
20
+ end
21
+
22
+ def unexpire_now
23
+ expire_at nil
24
+ end
25
+
26
+ def unexpire_now!
27
+ expire_at! nil
28
+ end
29
+
30
+ def expire_at(date_time = DateTime.now)
31
+ self.expires_at = date_time
32
+ end
16
33
 
34
+ def expire_at!(date_time = DateTime.now)
35
+ expire_at(date_time)
36
+ save
37
+ end
17
38
 
18
39
  def self.required_fields(klass)
19
40
  attributes = []
20
41
  attributes << :expires_at
21
42
  attributes
22
43
  end
44
+
23
45
  def access_locked?
24
46
  expired?
25
47
  end
48
+
26
49
  def active_for_authentication?
27
50
  super && !expired?
28
51
  end
@@ -1,5 +1,3 @@
1
- require 'devise_account_expireable'
2
-
3
1
  module DeviseAccountExpireable
4
2
  class Engine < ::Rails::Engine
5
3
 
@@ -1,3 +1,3 @@
1
1
  module DeviseAccountExpireable
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,20 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devise_account_expireable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
5
- prerelease:
4
+ version: 0.0.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Justin McNally
8
+ - Brendten Eickstaedt
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-12 00:00:00.000000000 Z
12
+ date: 2013-11-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: devise
16
16
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
17
  requirements:
19
18
  - - ! '>='
20
19
  - !ruby/object:Gem::Version
@@ -22,7 +21,6 @@ dependencies:
22
21
  type: :runtime
23
22
  prerelease: false
24
23
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
24
  requirements:
27
25
  - - ! '>='
28
26
  - !ruby/object:Gem::Version
@@ -30,7 +28,6 @@ dependencies:
30
28
  - !ruby/object:Gem::Dependency
31
29
  name: rails
32
30
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
31
  requirements:
35
32
  - - ! '>='
36
33
  - !ruby/object:Gem::Version
@@ -38,7 +35,6 @@ dependencies:
38
35
  type: :runtime
39
36
  prerelease: false
40
37
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
38
  requirements:
43
39
  - - ! '>='
44
40
  - !ruby/object:Gem::Version
@@ -46,6 +42,7 @@ dependencies:
46
42
  description: Expire a user's account at a certain date
47
43
  email:
48
44
  - justin@kohactive.com
45
+ - brendten@brendteneickstaedt.com
49
46
  executables: []
50
47
  extensions: []
51
48
  extra_rdoc_files: []
@@ -65,26 +62,26 @@ files:
65
62
  - lib/generators/devise_account_expireable/templates/migration.rb
66
63
  homepage: ''
67
64
  licenses: []
65
+ metadata: {}
68
66
  post_install_message:
69
67
  rdoc_options: []
70
68
  require_paths:
71
69
  - lib
72
70
  required_ruby_version: !ruby/object:Gem::Requirement
73
- none: false
74
71
  requirements:
75
72
  - - ! '>='
76
73
  - !ruby/object:Gem::Version
77
74
  version: '0'
78
75
  required_rubygems_version: !ruby/object:Gem::Requirement
79
- none: false
80
76
  requirements:
81
77
  - - ! '>='
82
78
  - !ruby/object:Gem::Version
83
79
  version: '0'
84
80
  requirements: []
85
81
  rubyforge_project:
86
- rubygems_version: 1.8.24
82
+ rubygems_version: 2.0.5
87
83
  signing_key:
88
- specification_version: 3
84
+ specification_version: 4
89
85
  summary: At a certain date make a user's account not work
90
86
  test_files: []
87
+ has_rdoc: