card 1.16.12 → 1.16.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/card.gemspec +1 -1
  4. data/db/migrate_core_cards/20130823192433_add_style_cards.rb +39 -24
  5. data/db/migrate_core_cards/20140629222005_add_email_cards.rb +6 -11
  6. data/db/migrate_core_cards/20151120180631_add_token_expiration.rb +7 -0
  7. data/db/seed/new/card_actions.yml +396 -388
  8. data/db/seed/new/card_acts.yml +1 -595
  9. data/db/seed/new/card_changes.yml +8154 -23619
  10. data/db/seed/new/card_references.yml +1009 -988
  11. data/db/seed/new/cards.yml +1445 -1423
  12. data/db/seed/test/fixtures/card_actions.yml +1375 -1399
  13. data/db/seed/test/fixtures/card_acts.yml +445 -1063
  14. data/db/seed/test/fixtures/card_changes.yml +11440 -26881
  15. data/db/seed/test/fixtures/card_references.yml +1523 -1502
  16. data/db/seed/test/fixtures/cards.yml +2736 -2715
  17. data/db/seed/test/seed.rb +7 -10
  18. data/db/version_core_cards.txt +1 -1
  19. data/lib/card/auth.rb +65 -19
  20. data/lib/card/cache.rb +18 -18
  21. data/lib/card/env.rb +10 -10
  22. data/lib/card/format.rb +41 -30
  23. data/lib/card/location.rb +3 -5
  24. data/lib/card/subcards.rb +0 -3
  25. data/lib/card/success.rb +14 -11
  26. data/mod/01_core/set/all/subcards.rb +4 -2
  27. data/mod/01_core/set/all/trash.rb +4 -1
  28. data/mod/02_basic_types/set/type/pointer.rb +5 -2
  29. data/mod/05_email/set/all/notify.rb +85 -73
  30. data/mod/05_email/spec/set/all/notify_spec.rb +74 -55
  31. data/mod/05_standard/set/all/comment.rb +18 -12
  32. data/mod/05_standard/set/all/error.rb +5 -1
  33. data/mod/05_standard/set/right/account.rb +50 -73
  34. data/mod/05_standard/set/right/token.rb +49 -2
  35. data/mod/05_standard/set/self/signin.rb +14 -12
  36. data/mod/05_standard/set/type/signup.rb +17 -21
  37. data/mod/05_standard/spec/set/all/account_spec.rb +1 -1
  38. data/mod/05_standard/spec/set/right/account_spec.rb +76 -52
  39. data/mod/05_standard/spec/set/right/password_spec.rb +10 -11
  40. data/mod/05_standard/spec/set/right/token_spec.rb +19 -1
  41. data/mod/05_standard/spec/set/type/signup_spec.rb +3 -4
  42. data/spec/lib/card/auth_spec.rb +46 -5
  43. metadata +5 -4
@@ -3,27 +3,26 @@
3
3
  describe Card::Set::Right::Password do
4
4
 
5
5
  before :each do
6
- @user_card = Card::Auth[ 'joe@user.com' ]
6
+ @account = Card::Auth[ 'joe@user.com' ]
7
7
  end
8
8
 
9
9
  describe '#update_attributes' do
10
-
11
10
  it 'should encrypt password' do
12
- @user_card.account.password_card.update_attributes! content: 'new password'
13
- expect(@user_card.account.password).not_to eq('new password')
14
- assert_equal @user_card.id, Card::Auth.authenticate('joe@user.com', 'new password')
11
+ @account.password_card.update_attributes! content: 'new password'
12
+ expect(@account.password).not_to eq('new password')
13
+ authenticated = Card::Auth.authenticate 'joe@user.com', 'new password'
14
+ assert_equal @account, authenticated
15
15
  end
16
16
 
17
17
  it 'should validate password' do
18
- password_card = @user_card.account.password_card
18
+ password_card = @account.password_card
19
19
  password_card.update_attributes content: '2b'
20
20
  expect(password_card.errors[:password]).not_to be_empty
21
-
22
21
  end
23
22
 
24
23
  context 'blank password' do
25
24
  it "shouldn't change the password" do
26
- acct = @user_card.account
25
+ acct = @account
27
26
  original_pw = acct.password
28
27
  expect(original_pw.size).to be > 10
29
28
  pw_card = acct.password_card
@@ -33,9 +32,9 @@ describe Card::Set::Right::Password do
33
32
  end
34
33
 
35
34
  it "shouldn't break email editing" do
36
- @user_card.account.update_attributes! subcards: {'+*password'=>'', '+*email'=>'joe2@user.com'}
37
- expect(@user_card.account.email).to eq('joe2@user.com')
38
- expect(@user_card.account.password).not_to be_empty
35
+ @account.update_attributes! subcards: {'+*password'=>'', '+*email'=>'joe2@user.com'}
36
+ expect(@account.email).to eq('joe2@user.com')
37
+ expect(@account.password).not_to be_empty
39
38
  end
40
39
  end
41
40
  end
@@ -1,5 +1,23 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
 
3
3
  describe Card::Set::Right::Token do
4
- # SPECSTUB
4
+ before do
5
+ @token = Card['Anonymous+*account'].fetch trait: :token, new: {}
6
+ end
7
+
8
+ it 'should get expiration from configuration by default' do
9
+ expect(@token.term).to eq(Card.config.token_expiry)
10
+ end
11
+
12
+ it 'should get expiration from card if it exists' do
13
+ @token.expiration = '3 days'
14
+ expect(@token.term).to eq(3.days)
15
+ expect(@token.permanent?).to be false
16
+ end
17
+
18
+ it 'should be permanent if expiration is "none"' do
19
+ @token.expiration = 'none'
20
+ expect(@token.term).to eq('permanent')
21
+ expect(@token.permanent?).to be true
22
+ end
5
23
  end
@@ -52,8 +52,8 @@ describe Card::Set::Type::Signup do
52
52
 
53
53
  it 'creates an authenticable token' do
54
54
  expect(@account.token).to eq(@token)
55
- expect(@account.authenticate_by_token(@token)).to eq(@signup.id)
56
- expect(@account.fetch(trait: :token)).not_to be_present
55
+ expect(@account.validate_token!(@token)).to be_truthy
56
+ expect(@account.errors).to be_empty
57
57
  end
58
58
 
59
59
  it 'notifies someone' do
@@ -83,9 +83,8 @@ describe Card::Set::Type::Signup do
83
83
  @account.reload
84
84
  # token gets updated
85
85
  expect(@account.token).not_to eq(@token)
86
- success = Card::Env.params[:success]
87
86
  # user notified of expired token
88
- expect(success[:message]).to match(/expired/)
87
+ expect(Card::Env.success.message).to match(/expired/)
89
88
  end
90
89
  end
91
90
 
@@ -1,17 +1,58 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
 
3
3
  describe Card::Auth do
4
+ before do
5
+ Card::Auth.current_id = Card::AnonymousID
6
+ @joeuserid = Card['Joe User'].id
7
+ end
4
8
 
5
9
  it 'should authenticate user' do
6
- assert_equal Card::Auth[ 'joe@user.com' ].id, Card::Auth.authenticate('joe@user.com', 'joe_pass')
10
+ authenticated = Card::Auth.authenticate 'joe@user.com', 'joe_pass'
11
+ expect(authenticated.left_id).to eq(@joeuserid)
7
12
  end
8
13
 
9
14
  it 'should authenticate user despite whitespace' do
10
- assert_equal Card::Auth[ 'joe@user.com' ].id, Card::Auth.authenticate(' joe@user.com ', ' joe_pass ')
15
+ authenticated = Card::Auth.authenticate ' joe@user.com ', ' joe_pass '
16
+ expect(authenticated.left_id).to eq(@joeuserid)
11
17
  end
12
18
 
13
19
  it 'should authenticate user with weird email capitalization' do
14
- assert Card::Auth.authenticate('JOE@user.com', 'joe_pass')
20
+ authenticated = Card::Auth.authenticate 'JOE@user.com', 'joe_pass'
21
+ expect(authenticated.left_id).to eq(@joeuserid)
22
+ end
23
+
24
+ it 'should set current directly from email' do
25
+ Card::Auth.set_current_from_mark 'joe@user.com'
26
+ expect(Card::Auth.current_id).to eq(@joeuserid)
27
+ end
28
+
29
+ it 'should set current directly from id when mark is id' do
30
+ Card::Auth.set_current_from_mark @joeuserid
31
+ expect(Card::Auth.current_id).to eq(@joeuserid)
32
+ end
33
+
34
+ it 'should set current directly from id when mark is id' do
35
+ Card::Auth.set_current_from_mark @joeuserid
36
+ expect(Card::Auth.current_id).to eq(@joeuserid)
37
+ end
38
+
39
+ context 'with token' do
40
+ before do
41
+ @joeadmin = Card['Joe Admin']
42
+ @token = 'abcd'
43
+ Card::Auth.as_bot do
44
+ @joeadmin.account.token_card.update_attributes! content: @token
45
+ end
46
+ end
47
+
48
+ it 'should set current from token' do
49
+ Card::Auth.set_current_from_token @token
50
+ expect(Card::Auth.current_id).to eq(@joeadmin.id)
51
+ end
52
+
53
+ it 'should set arbitrary current from token on authorized account' do
54
+ Card::Auth.set_current_from_token @token, @joeuserid
55
+ expect(Card::Auth.current_id).to eq(@joeuserid)
56
+ end
15
57
  end
16
-
17
- end
58
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: card
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.16.12
4
+ version: 1.16.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ethan McCutchen
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2015-11-11 00:00:00.000000000 Z
14
+ date: 2015-11-23 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: smartname
@@ -103,14 +103,14 @@ dependencies:
103
103
  requirements:
104
104
  - - "~>"
105
105
  - !ruby/object:Gem::Version
106
- version: '0.3'
106
+ version: 0.4.0
107
107
  type: :runtime
108
108
  prerelease: false
109
109
  version_requirements: !ruby/object:Gem::Requirement
110
110
  requirements:
111
111
  - - "~>"
112
112
  - !ruby/object:Gem::Version
113
- version: '0.3'
113
+ version: 0.4.0
114
114
  - !ruby/object:Gem::Dependency
115
115
  name: coderay
116
116
  requirement: !ruby/object:Gem::Requirement
@@ -308,6 +308,7 @@ files:
308
308
  - db/migrate_core_cards/20150824135418_update_file_history.rb
309
309
  - db/migrate_core_cards/20150903130006_attachment_upload_cards.rb
310
310
  - db/migrate_core_cards/20150910085603_remove_performance_log_card.rb
311
+ - db/migrate_core_cards/20151120180631_add_token_expiration.rb
311
312
  - db/migrate_core_cards/data/1.11_help_text.json
312
313
  - db/migrate_core_cards/data/1.12_stylesheets/classic_cards.scss
313
314
  - db/migrate_core_cards/data/1.12_stylesheets/common.scss