devise_account_expireable 0.0.1 → 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.
- checksums.yaml +15 -0
- data/README.md +58 -6
- data/devise_account_expireable.gemspec +2 -2
- data/lib/devise_account_expireable.rb +1 -5
- data/lib/devise_account_expireable/model.rb +27 -4
- data/lib/devise_account_expireable/rails.rb +0 -2
- data/lib/devise_account_expireable/version.rb +1 -1
- metadata +8 -11
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
|
-
##
|
17
|
+
## Setup and Configuration
|
18
18
|
|
19
|
-
1.
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
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
|
-
#
|
3
|
+
# Allow for expiration date on Devise resources. Adds attribute:
|
4
4
|
|
5
|
-
# *
|
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
|
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.
|
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:
|
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:
|
82
|
+
rubygems_version: 2.0.5
|
87
83
|
signing_key:
|
88
|
-
specification_version:
|
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:
|