simple_token_authentication 1.2.0 → 1.2.1
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 +4 -4
- data/README.md +3 -1
- data/lib/simple_token_authentication/acts_as_token_authentication_handler.rb +4 -0
- data/lib/simple_token_authentication/version.rb +1 -1
- data/spec/dummy/app/models/user.rb +1 -3
- data/spec/dummy/config/application.rb +1 -0
- data/spec/dummy/config/initializers/devise.rb +3 -3
- data/spec/dummy/config/initializers/simple_token_authentication.rb +1 -23
- data/spec/dummy/db/migrate/{20140223182309_devise_create_users.rb → 20140426184323_devise_create_users.rb} +0 -0
- data/spec/dummy/db/migrate/{20140223182310_add_authentication_token_to_users.rb → 20140426184324_add_authentication_token_to_users.rb} +0 -0
- data/spec/dummy/log/test.log +0 -75
- metadata +96 -146
- data/spec/dummy/app/assets/javascripts/private_posts.js +0 -2
- data/spec/dummy/app/assets/stylesheets/private_posts.css +0 -4
- data/spec/dummy/app/assets/stylesheets/scaffold.css +0 -56
- data/spec/dummy/app/controllers/private_posts_controller.rb +0 -63
- data/spec/dummy/app/helpers/private_posts_helper.rb +0 -2
- data/spec/dummy/app/models/private_post.rb +0 -2
- data/spec/dummy/app/views/private_posts/_form.html.erb +0 -25
- data/spec/dummy/app/views/private_posts/edit.html.erb +0 -6
- data/spec/dummy/app/views/private_posts/index.html.erb +0 -29
- data/spec/dummy/app/views/private_posts/new.html.erb +0 -5
- data/spec/dummy/app/views/private_posts/show.html.erb +0 -14
- data/spec/dummy/db/migrate/20140223182312_create_private_posts.rb +0 -10
- data/spec/dummy/db/schema.rb +0 -43
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/spec/controllers/private_posts_controller_spec.rb +0 -22
- data/spec/dummy/spec/factories/users.rb +0 -11
- data/spec/dummy/spec/helpers/private_posts_helper_spec.rb +0 -15
- data/spec/dummy/spec/models/private_post_spec.rb +0 -5
- data/spec/dummy/spec/requests/private_posts_controller_spec.rb +0 -47
- data/spec/dummy/spec/routing/private_posts_routing_spec.rb +0 -35
- data/spec/dummy/spec/views/private_posts/edit.html.erb_spec.rb +0 -20
- data/spec/dummy/spec/views/private_posts/index.html.erb_spec.rb +0 -23
- data/spec/dummy/spec/views/private_posts/new.html.erb_spec.rb +0 -20
- data/spec/dummy/spec/views/private_posts/show.html.erb_spec.rb +0 -17
- data/spec/dummy/test/factories/private_posts.rb +0 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2222a56f409c3bab94eb3524ee7d28737e264fb5
|
4
|
+
data.tar.gz: bbfc724250f735665f3e3bfe933a9fb96bb8784a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d891e6f73605d2d6f816ae2832f84f91c4fc5cc91fef1e9937f8c9d892a641af8b3e2a80d77f21b769cbaa42bcb4761088fb92f615577744a358f4c7d40c5117
|
7
|
+
data.tar.gz: 50421d5fcf18d6850be56676485eaa709b701a9d80125f65a1b43f4bb5b7b6c72482a81533ecbd8183fa4e73447551478e2c30933b4c90341851b64ba8009b85
|
data/README.md
CHANGED
@@ -3,6 +3,8 @@ Simple Token Authentication
|
|
3
3
|
|
4
4
|
[](http://badge.fury.io/rb/simple_token_authentication)
|
5
5
|
[](https://travis-ci.org/gonzalo-bulnes/simple_token_authentication)
|
6
|
+
[](https://codeclimate.com/github/gonzalo-bulnes/simple_token_authentication)
|
7
|
+
[](https://gemnasium.com/gonzalo-bulnes/simple_token_authentication)
|
6
8
|
|
7
9
|
Token authentication support has been removed from [Devise][devise] for security reasons. In [this gist][original-gist], Devise's [José Valim][josevalim] explains how token authentication should be performed in order to remain safe.
|
8
10
|
|
@@ -116,7 +118,7 @@ Usage
|
|
116
118
|
|
117
119
|
### Tokens Generation
|
118
120
|
|
119
|
-
Assuming `user` is an instance of `User`, which is _token authenticatable_: each time `user` will be saved, and `user.authentication_token.
|
121
|
+
Assuming `user` is an instance of `User`, which is _token authenticatable_: each time `user` will be saved, and `user.authentication_token.blank?` it receives a new and unique authentication token (via `Devise.friendly_token`).
|
120
122
|
|
121
123
|
### Authentication Method 1: Query Params
|
122
124
|
|
@@ -54,6 +54,10 @@ module SimpleTokenAuthentication
|
|
54
54
|
# in the database with the token given in the params, mitigating
|
55
55
|
# timing attacks.
|
56
56
|
if entity && Devise.secure_compare(entity.authentication_token, params[params_token_name])
|
57
|
+
# Sign in using token should not be tracked by Devise trackable
|
58
|
+
# See https://github.com/plataformatec/devise/issues/953
|
59
|
+
env["devise.skip_trackable"] = true
|
60
|
+
|
57
61
|
# Notice we are passing store false, so the entity is not
|
58
62
|
# actually stored in the session and a token is needed
|
59
63
|
# for every request. If you want the token to work as a
|
@@ -1,10 +1,10 @@
|
|
1
|
-
|
1
|
+
# Use this hook to configure devise mailer, warden hooks and so forth.
|
2
2
|
# Many of these configuration options can be set straight in your model.
|
3
3
|
Devise.setup do |config|
|
4
4
|
# The secret key used by Devise. Devise uses this key to generate
|
5
5
|
# random tokens. Changing this key will render invalid all existing
|
6
6
|
# confirmation, reset password and unlock tokens in the database.
|
7
|
-
config.secret_key = '
|
7
|
+
config.secret_key = 'd23142eee0a6ef134290f7884471fd7333363b51de5446b94bb52df9bf85bd4d96a6ba6be28f7d64c206273cf20fabbd72781382ba2b02defdb7f843bd13dda6'
|
8
8
|
|
9
9
|
# ==> Mailer Configuration
|
10
10
|
# Configure the e-mail address which will be shown in Devise::Mailer,
|
@@ -95,7 +95,7 @@ Devise.setup do |config|
|
|
95
95
|
config.stretches = Rails.env.test? ? 1 : 10
|
96
96
|
|
97
97
|
# Setup a pepper to generate the encrypted password.
|
98
|
-
# config.pepper = '
|
98
|
+
# config.pepper = 'b7dea1457b7fef1924640a147249994df1ea2557aeddff63a6d5910f5e952b6c3d459663f121ff2c936e7da861da85d013f1e301a9be00d6af30378c505ac908'
|
99
99
|
|
100
100
|
# ==> Configuration for :confirmable
|
101
101
|
# A period that the user is allowed to access the website even without
|
@@ -1,23 +1 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
# Configure the name of the HTTP headers watched for authentication.
|
4
|
-
#
|
5
|
-
# Default header names for a given token authenticatable entity follow the pattern:
|
6
|
-
# { entity: { authentication_token: 'X-Entity-Token', email: 'X-Entity-Email'} }
|
7
|
-
#
|
8
|
-
# When several token authenticatable models are defined, custom header names
|
9
|
-
# can be specified for none, any, or all of them.
|
10
|
-
#
|
11
|
-
# Examples
|
12
|
-
#
|
13
|
-
# Given User and SuperAdmin are token authenticatable,
|
14
|
-
# When the following configuration is used:
|
15
|
-
# `config.header_names = { super_admin: { authentication_token: 'X-Admin-Auth-Token' } }`
|
16
|
-
# Then the token authentification handler for User watches the following headers:
|
17
|
-
# `X-User-Token, X-User-Email`
|
18
|
-
# And the token authentification handler for SuperAdmin watches the following headers:
|
19
|
-
# `X-Admin-Auth-Token, X-SuperAdmin-Email`
|
20
|
-
#
|
21
|
-
config.header_names = { user: { authentication_token: 'X-User-Auth-Token', email: 'X-User-Email' } }
|
22
|
-
|
23
|
-
end
|
1
|
+
require 'simple_token_authentication'
|
File without changes
|
File without changes
|
data/spec/dummy/log/test.log
CHANGED
@@ -1,75 +0,0 @@
|
|
1
|
-
[1m[36m (123.9ms)[0m [1mCREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL) [0m
|
2
|
-
[1m[35m (120.5ms)[0m CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
|
3
|
-
[1m[36mActiveRecord::SchemaMigration Load (0.5ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
4
|
-
Migrating to DeviseCreateUsers (20140223182309)
|
5
|
-
[1m[35m (0.1ms)[0m begin transaction
|
6
|
-
[1m[36m (0.5ms)[0m [1mCREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "email" varchar(255) DEFAULT '' NOT NULL, "encrypted_password" varchar(255) DEFAULT '' NOT NULL, "reset_password_token" varchar(255), "reset_password_sent_at" datetime, "remember_created_at" datetime, "sign_in_count" integer DEFAULT 0 NOT NULL, "current_sign_in_at" datetime, "last_sign_in_at" datetime, "current_sign_in_ip" varchar(255), "last_sign_in_ip" varchar(255), "created_at" datetime, "updated_at" datetime) [0m
|
7
|
-
[1m[35m (0.2ms)[0m CREATE UNIQUE INDEX "index_users_on_email" ON "users" ("email")
|
8
|
-
[1m[36m (0.1ms)[0m [1mCREATE UNIQUE INDEX "index_users_on_reset_password_token" ON "users" ("reset_password_token")[0m
|
9
|
-
[1m[35mSQL (0.4ms)[0m INSERT INTO "schema_migrations" ("version") VALUES (?) [["version", "20140223182309"]]
|
10
|
-
[1m[36m (108.2ms)[0m [1mcommit transaction[0m
|
11
|
-
Migrating to AddAuthenticationTokenToUsers (20140223182310)
|
12
|
-
[1m[35m (0.3ms)[0m begin transaction
|
13
|
-
[1m[36m (0.6ms)[0m [1mALTER TABLE "users" ADD "authentication_token" varchar(255)[0m
|
14
|
-
[1m[35m (0.3ms)[0m CREATE INDEX "index_users_on_authentication_token" ON "users" ("authentication_token")
|
15
|
-
[1m[36mSQL (0.3ms)[0m [1mINSERT INTO "schema_migrations" ("version") VALUES (?)[0m [["version", "20140223182310"]]
|
16
|
-
[1m[35m (127.5ms)[0m commit transaction
|
17
|
-
Migrating to CreatePrivatePosts (20140223182312)
|
18
|
-
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
19
|
-
[1m[35m (0.6ms)[0m CREATE TABLE "private_posts" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "title" varchar(255), "body" text, "created_at" datetime, "updated_at" datetime)
|
20
|
-
[1m[36mSQL (0.5ms)[0m [1mINSERT INTO "schema_migrations" ("version") VALUES (?)[0m [["version", "20140223182312"]]
|
21
|
-
[1m[35m (84.8ms)[0m commit transaction
|
22
|
-
[1m[36mActiveRecord::SchemaMigration Load (0.1ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
23
|
-
[1m[36mActiveRecord::SchemaMigration Load (0.1ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
24
|
-
[1m[35m (0.1ms)[0m begin transaction
|
25
|
-
Processing by PrivatePostsController#index as HTML
|
26
|
-
Completed 500 Internal Server Error in 1ms
|
27
|
-
Processing by PrivatePostsController#new as HTML
|
28
|
-
Completed 500 Internal Server Error in 0ms
|
29
|
-
[1m[36m (0.1ms)[0m [1mrollback transaction[0m
|
30
|
-
[1m[35m (0.1ms)[0m begin transaction
|
31
|
-
Rendered private_posts/_form.html.erb (39.6ms)
|
32
|
-
[1m[36m (0.1ms)[0m [1mrollback transaction[0m
|
33
|
-
[1m[35m (0.1ms)[0m begin transaction
|
34
|
-
[1m[36m (0.1ms)[0m [1mSAVEPOINT active_record_1[0m
|
35
|
-
[1m[35mUser Exists (0.2ms)[0m SELECT 1 AS one FROM "users" WHERE "users"."email" = 'alice@example.com' LIMIT 1
|
36
|
-
Binary data inserted for `string` type on column `encrypted_password`
|
37
|
-
[1m[36mSQL (3.1ms)[0m [1mINSERT INTO "users" ("authentication_token", "created_at", "email", "encrypted_password", "updated_at") VALUES (?, ?, ?, ?, ?)[0m [["authentication_token", "ExaMpLeTokEn"], ["created_at", Sun, 23 Feb 2014 18:23:19 UTC +00:00], ["email", "alice@example.com"], ["encrypted_password", "$2a$04$tjMkNZ6xLjEZBvO8NFGVzOBCNhhW7xFEQYQmfoSuWnbF9aaibtdYW"], ["updated_at", Sun, 23 Feb 2014 18:23:19 UTC +00:00]]
|
38
|
-
[1m[35m (0.1ms)[0m RELEASE SAVEPOINT active_record_1
|
39
|
-
Started GET "/private_posts" for 127.0.0.1 at 2014-02-23 15:23:19 -0300
|
40
|
-
Processing by PrivatePostsController#index as HTML
|
41
|
-
[1m[36mUser Load (0.2ms)[0m [1mSELECT "users".* FROM "users" WHERE "users"."email" = 'alice@example.com' LIMIT 1[0m
|
42
|
-
Completed 500 Internal Server Error in 3ms
|
43
|
-
[1m[35m (0.2ms)[0m rollback transaction
|
44
|
-
[1m[36m (0.1ms)[0m [1mbegin transaction[0m
|
45
|
-
[1m[35m (0.1ms)[0m SAVEPOINT active_record_1
|
46
|
-
[1m[36mUser Exists (0.1ms)[0m [1mSELECT 1 AS one FROM "users" WHERE "users"."email" = 'alice@example.com' LIMIT 1[0m
|
47
|
-
Binary data inserted for `string` type on column `encrypted_password`
|
48
|
-
[1m[35mSQL (1.1ms)[0m INSERT INTO "users" ("authentication_token", "created_at", "email", "encrypted_password", "updated_at") VALUES (?, ?, ?, ?, ?) [["authentication_token", "ExaMpLeTokEn"], ["created_at", Sun, 23 Feb 2014 18:23:19 UTC +00:00], ["email", "alice@example.com"], ["encrypted_password", "$2a$04$AHYqxgr1.sE5iZF7dvLGLuDigz/DhW9DcHkCfE.Qhj.sae1kLsqWa"], ["updated_at", Sun, 23 Feb 2014 18:23:19 UTC +00:00]]
|
49
|
-
[1m[36m (0.1ms)[0m [1mRELEASE SAVEPOINT active_record_1[0m
|
50
|
-
Started GET "/private_posts" for 127.0.0.1 at 2014-02-23 15:23:19 -0300
|
51
|
-
Processing by PrivatePostsController#index as HTML
|
52
|
-
[1m[35mUser Load (0.2ms)[0m SELECT "users".* FROM "users" WHERE "users"."email" = 'alice@example.com' LIMIT 1
|
53
|
-
Completed 500 Internal Server Error in 2ms
|
54
|
-
[1m[36m (0.1ms)[0m [1mrollback transaction[0m
|
55
|
-
[1m[35m (0.1ms)[0m begin transaction
|
56
|
-
[1m[36m (0.1ms)[0m [1mrollback transaction[0m
|
57
|
-
[1m[35m (0.1ms)[0m begin transaction
|
58
|
-
[1m[36m (0.1ms)[0m [1mrollback transaction[0m
|
59
|
-
[1m[35m (0.1ms)[0m begin transaction
|
60
|
-
Rendered private_posts/_form.html.erb (2.4ms)
|
61
|
-
[1m[36m (0.1ms)[0m [1mrollback transaction[0m
|
62
|
-
[1m[35m (0.1ms)[0m begin transaction
|
63
|
-
[1m[36m (0.1ms)[0m [1mrollback transaction[0m
|
64
|
-
[1m[35m (0.1ms)[0m begin transaction
|
65
|
-
[1m[36m (0.6ms)[0m [1mrollback transaction[0m
|
66
|
-
[1m[35m (0.1ms)[0m begin transaction
|
67
|
-
[1m[36m (0.1ms)[0m [1mrollback transaction[0m
|
68
|
-
[1m[35m (0.0ms)[0m begin transaction
|
69
|
-
[1m[36m (0.1ms)[0m [1mrollback transaction[0m
|
70
|
-
[1m[35m (0.1ms)[0m begin transaction
|
71
|
-
[1m[36m (0.1ms)[0m [1mrollback transaction[0m
|
72
|
-
[1m[35m (0.0ms)[0m begin transaction
|
73
|
-
[1m[36m (0.1ms)[0m [1mrollback transaction[0m
|
74
|
-
[1m[35m (0.1ms)[0m begin transaction
|
75
|
-
[1m[36m (0.1ms)[0m [1mrollback transaction[0m
|
metadata
CHANGED
@@ -1,151 +1,151 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_token_authentication
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gonzalo Bulnes Guilpain
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-04-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 3.2.6
|
20
|
-
- - <
|
20
|
+
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: '5'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
|
-
- -
|
27
|
+
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: 3.2.6
|
30
|
-
- - <
|
30
|
+
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '5'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: actionmailer
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
|
-
- -
|
37
|
+
- - ">="
|
38
38
|
- !ruby/object:Gem::Version
|
39
39
|
version: 3.2.6
|
40
|
-
- - <
|
40
|
+
- - "<"
|
41
41
|
- !ruby/object:Gem::Version
|
42
42
|
version: '5'
|
43
43
|
type: :runtime
|
44
44
|
prerelease: false
|
45
45
|
version_requirements: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
|
-
- -
|
47
|
+
- - ">="
|
48
48
|
- !ruby/object:Gem::Version
|
49
49
|
version: 3.2.6
|
50
|
-
- - <
|
50
|
+
- - "<"
|
51
51
|
- !ruby/object:Gem::Version
|
52
52
|
version: '5'
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
54
|
name: devise
|
55
55
|
requirement: !ruby/object:Gem::Requirement
|
56
56
|
requirements:
|
57
|
-
- - ~>
|
57
|
+
- - "~>"
|
58
58
|
- !ruby/object:Gem::Version
|
59
59
|
version: 3.2.0
|
60
60
|
type: :runtime
|
61
61
|
prerelease: false
|
62
62
|
version_requirements: !ruby/object:Gem::Requirement
|
63
63
|
requirements:
|
64
|
-
- - ~>
|
64
|
+
- - "~>"
|
65
65
|
- !ruby/object:Gem::Version
|
66
66
|
version: 3.2.0
|
67
67
|
- !ruby/object:Gem::Dependency
|
68
68
|
name: sqlite3
|
69
69
|
requirement: !ruby/object:Gem::Requirement
|
70
70
|
requirements:
|
71
|
-
- -
|
71
|
+
- - ">="
|
72
72
|
- !ruby/object:Gem::Version
|
73
73
|
version: '0'
|
74
74
|
type: :development
|
75
75
|
prerelease: false
|
76
76
|
version_requirements: !ruby/object:Gem::Requirement
|
77
77
|
requirements:
|
78
|
-
- -
|
78
|
+
- - ">="
|
79
79
|
- !ruby/object:Gem::Version
|
80
80
|
version: '0'
|
81
81
|
- !ruby/object:Gem::Dependency
|
82
82
|
name: rspec-rails
|
83
83
|
requirement: !ruby/object:Gem::Requirement
|
84
84
|
requirements:
|
85
|
-
- -
|
85
|
+
- - ">="
|
86
86
|
- !ruby/object:Gem::Version
|
87
87
|
version: '0'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
90
|
version_requirements: !ruby/object:Gem::Requirement
|
91
91
|
requirements:
|
92
|
-
- -
|
92
|
+
- - ">="
|
93
93
|
- !ruby/object:Gem::Version
|
94
94
|
version: '0'
|
95
95
|
- !ruby/object:Gem::Dependency
|
96
96
|
name: factory_girl_rails
|
97
97
|
requirement: !ruby/object:Gem::Requirement
|
98
98
|
requirements:
|
99
|
-
- -
|
99
|
+
- - ">="
|
100
100
|
- !ruby/object:Gem::Version
|
101
101
|
version: '0'
|
102
102
|
type: :development
|
103
103
|
prerelease: false
|
104
104
|
version_requirements: !ruby/object:Gem::Requirement
|
105
105
|
requirements:
|
106
|
-
- -
|
106
|
+
- - ">="
|
107
107
|
- !ruby/object:Gem::Version
|
108
108
|
version: '0'
|
109
109
|
- !ruby/object:Gem::Dependency
|
110
110
|
name: cucumber-rails
|
111
111
|
requirement: !ruby/object:Gem::Requirement
|
112
112
|
requirements:
|
113
|
-
- -
|
113
|
+
- - ">="
|
114
114
|
- !ruby/object:Gem::Version
|
115
115
|
version: '0'
|
116
116
|
type: :development
|
117
117
|
prerelease: false
|
118
118
|
version_requirements: !ruby/object:Gem::Requirement
|
119
119
|
requirements:
|
120
|
-
- -
|
120
|
+
- - ">="
|
121
121
|
- !ruby/object:Gem::Version
|
122
122
|
version: '0'
|
123
123
|
- !ruby/object:Gem::Dependency
|
124
124
|
name: database_cleaner
|
125
125
|
requirement: !ruby/object:Gem::Requirement
|
126
126
|
requirements:
|
127
|
-
- -
|
127
|
+
- - ">="
|
128
128
|
- !ruby/object:Gem::Version
|
129
129
|
version: '0'
|
130
130
|
type: :development
|
131
131
|
prerelease: false
|
132
132
|
version_requirements: !ruby/object:Gem::Requirement
|
133
133
|
requirements:
|
134
|
-
- -
|
134
|
+
- - ">="
|
135
135
|
- !ruby/object:Gem::Version
|
136
136
|
version: '0'
|
137
137
|
- !ruby/object:Gem::Dependency
|
138
138
|
name: aruba
|
139
139
|
requirement: !ruby/object:Gem::Requirement
|
140
140
|
requirements:
|
141
|
-
- -
|
141
|
+
- - ">="
|
142
142
|
- !ruby/object:Gem::Version
|
143
143
|
version: '0'
|
144
144
|
type: :development
|
145
145
|
prerelease: false
|
146
146
|
version_requirements: !ruby/object:Gem::Requirement
|
147
147
|
requirements:
|
148
|
-
- -
|
148
|
+
- - ">="
|
149
149
|
- !ruby/object:Gem::Version
|
150
150
|
version: '0'
|
151
151
|
description:
|
@@ -155,84 +155,59 @@ executables: []
|
|
155
155
|
extensions: []
|
156
156
|
extra_rdoc_files: []
|
157
157
|
files:
|
158
|
-
-
|
159
|
-
-
|
160
|
-
-
|
158
|
+
- LICENSE
|
159
|
+
- README.md
|
160
|
+
- Rakefile
|
161
|
+
- lib/simple_token_authentication.rb
|
161
162
|
- lib/simple_token_authentication/acts_as_token_authenticatable.rb
|
162
163
|
- lib/simple_token_authentication/acts_as_token_authentication_handler.rb
|
164
|
+
- lib/simple_token_authentication/configuration.rb
|
163
165
|
- lib/simple_token_authentication/version.rb
|
164
|
-
- lib/
|
165
|
-
-
|
166
|
-
- Rakefile
|
167
|
-
- README.md
|
168
|
-
- spec/dummy/config.ru
|
166
|
+
- lib/tasks/cucumber.rake
|
167
|
+
- lib/tasks/simple_token_authentication_tasks.rake
|
169
168
|
- spec/dummy/Gemfile
|
169
|
+
- spec/dummy/README.rdoc
|
170
|
+
- spec/dummy/Rakefile
|
171
|
+
- spec/dummy/app/assets/javascripts/application.js
|
172
|
+
- spec/dummy/app/assets/stylesheets/application.css
|
173
|
+
- spec/dummy/app/controllers/application_controller.rb
|
174
|
+
- spec/dummy/app/helpers/application_helper.rb
|
175
|
+
- spec/dummy/app/models/user.rb
|
176
|
+
- spec/dummy/app/views/layouts/application.html.erb
|
170
177
|
- spec/dummy/bin/bundle
|
171
178
|
- spec/dummy/bin/rails
|
172
179
|
- spec/dummy/bin/rake
|
173
|
-
- spec/dummy/
|
174
|
-
- spec/dummy/db/migrate/20140223182312_create_private_posts.rb
|
175
|
-
- spec/dummy/db/migrate/20140223182309_devise_create_users.rb
|
176
|
-
- spec/dummy/db/migrate/20140223182310_add_authentication_token_to_users.rb
|
177
|
-
- spec/dummy/db/test.sqlite3
|
178
|
-
- spec/dummy/db/schema.rb
|
179
|
-
- spec/dummy/log/test.log
|
180
|
-
- spec/dummy/README.rdoc
|
181
|
-
- spec/dummy/config/initializers/wrap_parameters.rb
|
182
|
-
- spec/dummy/config/initializers/inflections.rb
|
183
|
-
- spec/dummy/config/initializers/secret_token.rb
|
184
|
-
- spec/dummy/config/initializers/simple_token_authentication.rb
|
185
|
-
- spec/dummy/config/initializers/devise.rb
|
186
|
-
- spec/dummy/config/initializers/session_store.rb
|
187
|
-
- spec/dummy/config/initializers/backtrace_silencers.rb
|
188
|
-
- spec/dummy/config/initializers/filter_parameter_logging.rb
|
189
|
-
- spec/dummy/config/initializers/mime_types.rb
|
190
|
-
- spec/dummy/config/boot.rb
|
191
|
-
- spec/dummy/config/routes.rb
|
180
|
+
- spec/dummy/config.ru
|
192
181
|
- spec/dummy/config/application.rb
|
193
|
-
- spec/dummy/config/
|
194
|
-
- spec/dummy/config/environments/development.rb
|
195
|
-
- spec/dummy/config/environments/test.rb
|
182
|
+
- spec/dummy/config/boot.rb
|
196
183
|
- spec/dummy/config/database.yml
|
197
184
|
- spec/dummy/config/environment.rb
|
185
|
+
- spec/dummy/config/environments/development.rb
|
186
|
+
- spec/dummy/config/environments/production.rb
|
187
|
+
- spec/dummy/config/environments/test.rb
|
188
|
+
- spec/dummy/config/initializers/backtrace_silencers.rb
|
189
|
+
- spec/dummy/config/initializers/devise.rb
|
190
|
+
- spec/dummy/config/initializers/filter_parameter_logging.rb
|
191
|
+
- spec/dummy/config/initializers/inflections.rb
|
192
|
+
- spec/dummy/config/initializers/mime_types.rb
|
193
|
+
- spec/dummy/config/initializers/secret_token.rb
|
194
|
+
- spec/dummy/config/initializers/session_store.rb
|
195
|
+
- spec/dummy/config/initializers/simple_token_authentication.rb
|
196
|
+
- spec/dummy/config/initializers/wrap_parameters.rb
|
198
197
|
- spec/dummy/config/locales/devise.en.yml
|
199
198
|
- spec/dummy/config/locales/en.yml
|
200
|
-
- spec/dummy/
|
201
|
-
- spec/dummy/
|
202
|
-
- spec/dummy/
|
203
|
-
- spec/dummy/
|
204
|
-
- spec/dummy/
|
205
|
-
- spec/dummy/
|
206
|
-
- spec/dummy/
|
207
|
-
- spec/dummy/spec/factories/users.rb
|
208
|
-
- spec/dummy/spec/routing/private_posts_routing_spec.rb
|
209
|
-
- spec/dummy/spec/models/private_post_spec.rb
|
210
|
-
- spec/dummy/spec/controllers/private_posts_controller_spec.rb
|
211
|
-
- spec/dummy/spec/requests/private_posts_controller_spec.rb
|
212
|
-
- spec/dummy/spec/helpers/private_posts_helper_spec.rb
|
213
|
-
- spec/dummy/app/views/layouts/application.html.erb
|
214
|
-
- spec/dummy/app/views/private_posts/new.html.erb
|
215
|
-
- spec/dummy/app/views/private_posts/index.html.erb
|
216
|
-
- spec/dummy/app/views/private_posts/edit.html.erb
|
217
|
-
- spec/dummy/app/views/private_posts/_form.html.erb
|
218
|
-
- spec/dummy/app/views/private_posts/show.html.erb
|
219
|
-
- spec/dummy/app/assets/stylesheets/private_posts.css
|
220
|
-
- spec/dummy/app/assets/stylesheets/application.css
|
221
|
-
- spec/dummy/app/assets/stylesheets/scaffold.css
|
222
|
-
- spec/dummy/app/assets/javascripts/private_posts.js
|
223
|
-
- spec/dummy/app/assets/javascripts/application.js
|
224
|
-
- spec/dummy/app/models/private_post.rb
|
225
|
-
- spec/dummy/app/models/user.rb
|
226
|
-
- spec/dummy/app/controllers/private_posts_controller.rb
|
227
|
-
- spec/dummy/app/controllers/application_controller.rb
|
228
|
-
- spec/dummy/app/helpers/application_helper.rb
|
229
|
-
- spec/dummy/app/helpers/private_posts_helper.rb
|
230
|
-
- spec/dummy/test/factories/private_posts.rb
|
231
|
-
- spec/dummy/public/robots.txt
|
199
|
+
- spec/dummy/config/routes.rb
|
200
|
+
- spec/dummy/db/migrate/20140426184323_devise_create_users.rb
|
201
|
+
- spec/dummy/db/migrate/20140426184324_add_authentication_token_to_users.rb
|
202
|
+
- spec/dummy/db/seeds.rb
|
203
|
+
- spec/dummy/log/test.log
|
204
|
+
- spec/dummy/public/404.html
|
205
|
+
- spec/dummy/public/422.html
|
232
206
|
- spec/dummy/public/500.html
|
233
207
|
- spec/dummy/public/favicon.ico
|
234
|
-
- spec/dummy/public/
|
235
|
-
- spec/dummy/
|
208
|
+
- spec/dummy/public/robots.txt
|
209
|
+
- spec/dummy/spec/spec_helper.rb
|
210
|
+
- spec/dummy/spec/support/factory_girl.rb
|
236
211
|
homepage: https://github.com/gonzalo-bulnes/simple_token_authentication
|
237
212
|
licenses:
|
238
213
|
- GPLv3
|
@@ -243,86 +218,61 @@ require_paths:
|
|
243
218
|
- lib
|
244
219
|
required_ruby_version: !ruby/object:Gem::Requirement
|
245
220
|
requirements:
|
246
|
-
- -
|
221
|
+
- - ">="
|
247
222
|
- !ruby/object:Gem::Version
|
248
223
|
version: '0'
|
249
224
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
250
225
|
requirements:
|
251
|
-
- -
|
226
|
+
- - ">="
|
252
227
|
- !ruby/object:Gem::Version
|
253
228
|
version: '0'
|
254
229
|
requirements: []
|
255
230
|
rubyforge_project:
|
256
|
-
rubygems_version: 2.
|
231
|
+
rubygems_version: 2.2.2
|
257
232
|
signing_key:
|
258
233
|
specification_version: 4
|
259
234
|
summary: Simple (but safe) token authentication for Rails apps or API with Devise.
|
260
235
|
test_files:
|
261
|
-
- spec/dummy/
|
262
|
-
- spec/dummy/
|
236
|
+
- spec/dummy/spec/spec_helper.rb
|
237
|
+
- spec/dummy/spec/support/factory_girl.rb
|
238
|
+
- spec/dummy/log/test.log
|
239
|
+
- spec/dummy/public/robots.txt
|
240
|
+
- spec/dummy/public/favicon.ico
|
241
|
+
- spec/dummy/public/500.html
|
242
|
+
- spec/dummy/public/404.html
|
243
|
+
- spec/dummy/public/422.html
|
244
|
+
- spec/dummy/db/seeds.rb
|
245
|
+
- spec/dummy/db/migrate/20140426184324_add_authentication_token_to_users.rb
|
246
|
+
- spec/dummy/db/migrate/20140426184323_devise_create_users.rb
|
247
|
+
- spec/dummy/bin/rake
|
263
248
|
- spec/dummy/bin/bundle
|
264
249
|
- spec/dummy/bin/rails
|
265
|
-
- spec/dummy/
|
266
|
-
- spec/dummy/
|
267
|
-
- spec/dummy/
|
268
|
-
- spec/dummy/
|
269
|
-
- spec/dummy/
|
270
|
-
- spec/dummy/
|
271
|
-
- spec/dummy/
|
272
|
-
- spec/dummy/log/test.log
|
273
|
-
- spec/dummy/README.rdoc
|
274
|
-
- spec/dummy/config/initializers/wrap_parameters.rb
|
250
|
+
- spec/dummy/Gemfile
|
251
|
+
- spec/dummy/config/application.rb
|
252
|
+
- spec/dummy/config/locales/en.yml
|
253
|
+
- spec/dummy/config/locales/devise.en.yml
|
254
|
+
- spec/dummy/config/initializers/backtrace_silencers.rb
|
255
|
+
- spec/dummy/config/initializers/session_store.rb
|
256
|
+
- spec/dummy/config/initializers/mime_types.rb
|
275
257
|
- spec/dummy/config/initializers/inflections.rb
|
258
|
+
- spec/dummy/config/initializers/wrap_parameters.rb
|
276
259
|
- spec/dummy/config/initializers/secret_token.rb
|
260
|
+
- spec/dummy/config/initializers/filter_parameter_logging.rb
|
277
261
|
- spec/dummy/config/initializers/simple_token_authentication.rb
|
278
262
|
- spec/dummy/config/initializers/devise.rb
|
279
|
-
- spec/dummy/config/
|
280
|
-
- spec/dummy/config/initializers/backtrace_silencers.rb
|
281
|
-
- spec/dummy/config/initializers/filter_parameter_logging.rb
|
282
|
-
- spec/dummy/config/initializers/mime_types.rb
|
283
|
-
- spec/dummy/config/boot.rb
|
263
|
+
- spec/dummy/config/environment.rb
|
284
264
|
- spec/dummy/config/routes.rb
|
285
|
-
- spec/dummy/config/
|
286
|
-
- spec/dummy/config/environments/production.rb
|
265
|
+
- spec/dummy/config/boot.rb
|
287
266
|
- spec/dummy/config/environments/development.rb
|
288
267
|
- spec/dummy/config/environments/test.rb
|
268
|
+
- spec/dummy/config/environments/production.rb
|
289
269
|
- spec/dummy/config/database.yml
|
290
|
-
- spec/dummy/config/environment.rb
|
291
|
-
- spec/dummy/config/locales/devise.en.yml
|
292
|
-
- spec/dummy/config/locales/en.yml
|
293
|
-
- spec/dummy/Rakefile
|
294
|
-
- spec/dummy/spec/spec_helper.rb
|
295
|
-
- spec/dummy/spec/views/private_posts/edit.html.erb_spec.rb
|
296
|
-
- spec/dummy/spec/views/private_posts/new.html.erb_spec.rb
|
297
|
-
- spec/dummy/spec/views/private_posts/index.html.erb_spec.rb
|
298
|
-
- spec/dummy/spec/views/private_posts/show.html.erb_spec.rb
|
299
|
-
- spec/dummy/spec/support/factory_girl.rb
|
300
|
-
- spec/dummy/spec/factories/users.rb
|
301
|
-
- spec/dummy/spec/routing/private_posts_routing_spec.rb
|
302
|
-
- spec/dummy/spec/models/private_post_spec.rb
|
303
|
-
- spec/dummy/spec/controllers/private_posts_controller_spec.rb
|
304
|
-
- spec/dummy/spec/requests/private_posts_controller_spec.rb
|
305
|
-
- spec/dummy/spec/helpers/private_posts_helper_spec.rb
|
306
|
-
- spec/dummy/app/views/layouts/application.html.erb
|
307
|
-
- spec/dummy/app/views/private_posts/new.html.erb
|
308
|
-
- spec/dummy/app/views/private_posts/index.html.erb
|
309
|
-
- spec/dummy/app/views/private_posts/edit.html.erb
|
310
|
-
- spec/dummy/app/views/private_posts/_form.html.erb
|
311
|
-
- spec/dummy/app/views/private_posts/show.html.erb
|
312
|
-
- spec/dummy/app/assets/stylesheets/private_posts.css
|
313
|
-
- spec/dummy/app/assets/stylesheets/application.css
|
314
|
-
- spec/dummy/app/assets/stylesheets/scaffold.css
|
315
|
-
- spec/dummy/app/assets/javascripts/private_posts.js
|
316
270
|
- spec/dummy/app/assets/javascripts/application.js
|
317
|
-
- spec/dummy/app/
|
318
|
-
- spec/dummy/app/models/user.rb
|
319
|
-
- spec/dummy/app/controllers/private_posts_controller.rb
|
271
|
+
- spec/dummy/app/assets/stylesheets/application.css
|
320
272
|
- spec/dummy/app/controllers/application_controller.rb
|
321
273
|
- spec/dummy/app/helpers/application_helper.rb
|
322
|
-
- spec/dummy/app/
|
323
|
-
- spec/dummy/
|
324
|
-
- spec/dummy/
|
325
|
-
- spec/dummy/
|
326
|
-
- spec/dummy/
|
327
|
-
- spec/dummy/public/422.html
|
328
|
-
- spec/dummy/public/404.html
|
274
|
+
- spec/dummy/app/views/layouts/application.html.erb
|
275
|
+
- spec/dummy/app/models/user.rb
|
276
|
+
- spec/dummy/README.rdoc
|
277
|
+
- spec/dummy/Rakefile
|
278
|
+
- spec/dummy/config.ru
|
@@ -1,56 +0,0 @@
|
|
1
|
-
body { background-color: #fff; color: #333; }
|
2
|
-
|
3
|
-
body, p, ol, ul, td {
|
4
|
-
font-family: verdana, arial, helvetica, sans-serif;
|
5
|
-
font-size: 13px;
|
6
|
-
line-height: 18px;
|
7
|
-
}
|
8
|
-
|
9
|
-
pre {
|
10
|
-
background-color: #eee;
|
11
|
-
padding: 10px;
|
12
|
-
font-size: 11px;
|
13
|
-
}
|
14
|
-
|
15
|
-
a { color: #000; }
|
16
|
-
a:visited { color: #666; }
|
17
|
-
a:hover { color: #fff; background-color:#000; }
|
18
|
-
|
19
|
-
div.field, div.actions {
|
20
|
-
margin-bottom: 10px;
|
21
|
-
}
|
22
|
-
|
23
|
-
#notice {
|
24
|
-
color: green;
|
25
|
-
}
|
26
|
-
|
27
|
-
.field_with_errors {
|
28
|
-
padding: 2px;
|
29
|
-
background-color: red;
|
30
|
-
display: table;
|
31
|
-
}
|
32
|
-
|
33
|
-
#error_explanation {
|
34
|
-
width: 450px;
|
35
|
-
border: 2px solid red;
|
36
|
-
padding: 7px;
|
37
|
-
padding-bottom: 0;
|
38
|
-
margin-bottom: 20px;
|
39
|
-
background-color: #f0f0f0;
|
40
|
-
}
|
41
|
-
|
42
|
-
#error_explanation h2 {
|
43
|
-
text-align: left;
|
44
|
-
font-weight: bold;
|
45
|
-
padding: 5px 5px 5px 15px;
|
46
|
-
font-size: 12px;
|
47
|
-
margin: -7px;
|
48
|
-
margin-bottom: 0px;
|
49
|
-
background-color: #c00;
|
50
|
-
color: #fff;
|
51
|
-
}
|
52
|
-
|
53
|
-
#error_explanation ul li {
|
54
|
-
font-size: 12px;
|
55
|
-
list-style: square;
|
56
|
-
}
|
@@ -1,63 +0,0 @@
|
|
1
|
-
class PrivatePostsController < ApplicationController
|
2
|
-
|
3
|
-
# Please do notice that this controller DOES call `acts_as_authentication_handler`.
|
4
|
-
# See test/dummy/spec/requests/posts_specs.rb
|
5
|
-
acts_as_token_authentication_handler_for User
|
6
|
-
|
7
|
-
before_action :set_private_post, only: [:show, :edit, :update, :destroy]
|
8
|
-
|
9
|
-
# GET /private_posts
|
10
|
-
def index
|
11
|
-
@private_posts = PrivatePost.all
|
12
|
-
end
|
13
|
-
|
14
|
-
# GET /private_posts/1
|
15
|
-
def show
|
16
|
-
end
|
17
|
-
|
18
|
-
# GET /private_posts/new
|
19
|
-
def new
|
20
|
-
@private_post = PrivatePost.new
|
21
|
-
end
|
22
|
-
|
23
|
-
# GET /private_posts/1/edit
|
24
|
-
def edit
|
25
|
-
end
|
26
|
-
|
27
|
-
# POST /private_posts
|
28
|
-
def create
|
29
|
-
@private_post = PrivatePost.new(private_post_params)
|
30
|
-
|
31
|
-
if @private_post.save
|
32
|
-
redirect_to @private_post, notice: 'Private post was successfully created.'
|
33
|
-
else
|
34
|
-
render action: 'new'
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
# PATCH/PUT /private_posts/1
|
39
|
-
def update
|
40
|
-
if @private_post.update(private_post_params)
|
41
|
-
redirect_to @private_post, notice: 'Private post was successfully updated.'
|
42
|
-
else
|
43
|
-
render action: 'edit'
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
# DELETE /private_posts/1
|
48
|
-
def destroy
|
49
|
-
@private_post.destroy
|
50
|
-
redirect_to private_posts_url, notice: 'Private post was successfully destroyed.'
|
51
|
-
end
|
52
|
-
|
53
|
-
private
|
54
|
-
# Use callbacks to share common setup or constraints between actions.
|
55
|
-
def set_private_post
|
56
|
-
@private_post = PrivatePost.find(params[:id])
|
57
|
-
end
|
58
|
-
|
59
|
-
# Only allow a trusted parameter "white list" through.
|
60
|
-
def private_post_params
|
61
|
-
params.require(:private_post).permit(:title, :body)
|
62
|
-
end
|
63
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
<%= form_for(@private_post) do |f| %>
|
2
|
-
<% if @private_post.errors.any? %>
|
3
|
-
<div id="error_explanation">
|
4
|
-
<h2><%= pluralize(@private_post.errors.count, "error") %> prohibited this private_post from being saved:</h2>
|
5
|
-
|
6
|
-
<ul>
|
7
|
-
<% @private_post.errors.full_messages.each do |msg| %>
|
8
|
-
<li><%= msg %></li>
|
9
|
-
<% end %>
|
10
|
-
</ul>
|
11
|
-
</div>
|
12
|
-
<% end %>
|
13
|
-
|
14
|
-
<div class="field">
|
15
|
-
<%= f.label :title %><br>
|
16
|
-
<%= f.text_field :title %>
|
17
|
-
</div>
|
18
|
-
<div class="field">
|
19
|
-
<%= f.label :body %><br>
|
20
|
-
<%= f.text_area :body %>
|
21
|
-
</div>
|
22
|
-
<div class="actions">
|
23
|
-
<%= f.submit %>
|
24
|
-
</div>
|
25
|
-
<% end %>
|
@@ -1,29 +0,0 @@
|
|
1
|
-
<h1>Listing private_posts</h1>
|
2
|
-
|
3
|
-
<table>
|
4
|
-
<thead>
|
5
|
-
<tr>
|
6
|
-
<th>Title</th>
|
7
|
-
<th>Body</th>
|
8
|
-
<th></th>
|
9
|
-
<th></th>
|
10
|
-
<th></th>
|
11
|
-
</tr>
|
12
|
-
</thead>
|
13
|
-
|
14
|
-
<tbody>
|
15
|
-
<% @private_posts.each do |private_post| %>
|
16
|
-
<tr>
|
17
|
-
<td><%= private_post.title %></td>
|
18
|
-
<td><%= private_post.body %></td>
|
19
|
-
<td><%= link_to 'Show', private_post %></td>
|
20
|
-
<td><%= link_to 'Edit', edit_private_post_path(private_post) %></td>
|
21
|
-
<td><%= link_to 'Destroy', private_post, method: :delete, data: { confirm: 'Are you sure?' } %></td>
|
22
|
-
</tr>
|
23
|
-
<% end %>
|
24
|
-
</tbody>
|
25
|
-
</table>
|
26
|
-
|
27
|
-
<br>
|
28
|
-
|
29
|
-
<%= link_to 'New Private post', new_private_post_path %>
|
@@ -1,14 +0,0 @@
|
|
1
|
-
<p id="notice"><%= notice %></p>
|
2
|
-
|
3
|
-
<p>
|
4
|
-
<strong>Title:</strong>
|
5
|
-
<%= @private_post.title %>
|
6
|
-
</p>
|
7
|
-
|
8
|
-
<p>
|
9
|
-
<strong>Body:</strong>
|
10
|
-
<%= @private_post.body %>
|
11
|
-
</p>
|
12
|
-
|
13
|
-
<%= link_to 'Edit', edit_private_post_path(@private_post) %> |
|
14
|
-
<%= link_to 'Back', private_posts_path %>
|
data/spec/dummy/db/schema.rb
DELETED
@@ -1,43 +0,0 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
# This file is auto-generated from the current state of the database. Instead
|
3
|
-
# of editing this file, please use the migrations feature of Active Record to
|
4
|
-
# incrementally modify your database, and then regenerate this schema definition.
|
5
|
-
#
|
6
|
-
# Note that this schema.rb definition is the authoritative source for your
|
7
|
-
# database schema. If you need to create the application database on another
|
8
|
-
# system, you should be using db:schema:load, not running all the migrations
|
9
|
-
# from scratch. The latter is a flawed and unsustainable approach (the more migrations
|
10
|
-
# you'll amass, the slower it'll run and the greater likelihood for issues).
|
11
|
-
#
|
12
|
-
# It's strongly recommended that you check this file into your version control system.
|
13
|
-
|
14
|
-
ActiveRecord::Schema.define(version: 20140223182312) do
|
15
|
-
|
16
|
-
create_table "private_posts", force: true do |t|
|
17
|
-
t.string "title"
|
18
|
-
t.text "body"
|
19
|
-
t.datetime "created_at"
|
20
|
-
t.datetime "updated_at"
|
21
|
-
end
|
22
|
-
|
23
|
-
create_table "users", force: true do |t|
|
24
|
-
t.string "email", default: "", null: false
|
25
|
-
t.string "encrypted_password", default: "", null: false
|
26
|
-
t.string "reset_password_token"
|
27
|
-
t.datetime "reset_password_sent_at"
|
28
|
-
t.datetime "remember_created_at"
|
29
|
-
t.integer "sign_in_count", default: 0, null: false
|
30
|
-
t.datetime "current_sign_in_at"
|
31
|
-
t.datetime "last_sign_in_at"
|
32
|
-
t.string "current_sign_in_ip"
|
33
|
-
t.string "last_sign_in_ip"
|
34
|
-
t.datetime "created_at"
|
35
|
-
t.datetime "updated_at"
|
36
|
-
t.string "authentication_token"
|
37
|
-
end
|
38
|
-
|
39
|
-
add_index "users", ["authentication_token"], name: "index_users_on_authentication_token"
|
40
|
-
add_index "users", ["email"], name: "index_users_on_email", unique: true
|
41
|
-
add_index "users", ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true
|
42
|
-
|
43
|
-
end
|
data/spec/dummy/db/test.sqlite3
DELETED
Binary file
|
@@ -1,22 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe PrivatePostsController do
|
4
|
-
|
5
|
-
# This should return the minimal set of attributes required to create a valid
|
6
|
-
# PrivatePost. As you add validations to PrivatePost, be sure to
|
7
|
-
# adjust the attributes here as well.
|
8
|
-
let(:valid_attributes) { { "title" => "MyString" } }
|
9
|
-
|
10
|
-
# This should return the minimal set of values that should be in the session
|
11
|
-
# in order to pass any filters (e.g. authentication) defined in
|
12
|
-
# PrivatePostsController. Be sure to keep this updated too.
|
13
|
-
let(:valid_session) { {} }
|
14
|
-
|
15
|
-
describe "actions" do
|
16
|
-
it "all require authentication" do
|
17
|
-
# That's true for all actions, yet I think there's no need to repeat them all here.
|
18
|
-
lambda { get :index, {}, valid_session }.should raise_exception(RuntimeError)
|
19
|
-
lambda { get :new, {}, valid_session }.should raise_exception(RuntimeError)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
# Specs in this file have access to a helper object that includes
|
4
|
-
# the PrivatePostsHelper. For example:
|
5
|
-
#
|
6
|
-
# describe PrivatePostsHelper do
|
7
|
-
# describe "string concat" do
|
8
|
-
# it "concats two strings with spaces" do
|
9
|
-
# expect(helper.concat_strings("this","that")).to eq("this that")
|
10
|
-
# end
|
11
|
-
# end
|
12
|
-
# end
|
13
|
-
describe PrivatePostsHelper do
|
14
|
-
pending "add some examples to (or delete) #{__FILE__}"
|
15
|
-
end
|
@@ -1,47 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe "PrivatePostsController" do
|
4
|
-
describe "GET /private_posts" do
|
5
|
-
|
6
|
-
context "when an initializer overrides the header_names default value" do
|
7
|
-
|
8
|
-
# See config/initializers/simple_token_authentication.rb
|
9
|
-
|
10
|
-
context "and the custom headers are set in the request" do
|
11
|
-
|
12
|
-
it "performs token authentication" do
|
13
|
-
user = FactoryGirl.create(:user \
|
14
|
-
,email: 'alice@example.com' \
|
15
|
-
,authentication_token: 'ExaMpLeTokEn' )
|
16
|
-
|
17
|
-
# `sign_in` is configured to raise an exception when called,
|
18
|
-
# see spec/dummy/app/controllers/application_controller.rb
|
19
|
-
lambda do
|
20
|
-
# see https://github.com/rspec/rspec-rails/issues/65
|
21
|
-
# and http://guides.rubyonrails.org/testing.html#helpers-available-for-integration-tests
|
22
|
-
request_via_redirect 'GET', private_posts_path, nil, { 'X-User-Email' => user.email, 'X-User-Auth-Token' => user.authentication_token }
|
23
|
-
end.should raise_exception(RuntimeError, "`sign_in` was called.")
|
24
|
-
end
|
25
|
-
end
|
26
|
-
context "and the custom headers are missing in the request (and no query params are used)" do
|
27
|
-
context "even if the default headers are set in the request" do
|
28
|
-
|
29
|
-
it "does not perform token authentication" do
|
30
|
-
user = FactoryGirl.create(:user \
|
31
|
-
,email: 'alice@example.com' \
|
32
|
-
,authentication_token: 'ExaMpLeTokEn' )
|
33
|
-
|
34
|
-
# `authenticate_user!` is configured to raise an exception when called,
|
35
|
-
# see spec/dummy/app/controllers/application_controller.rb
|
36
|
-
lambda do
|
37
|
-
# see https://github.com/rspec/rspec-rails/issues/65
|
38
|
-
# and http://guides.rubyonrails.org/testing.html#helpers-available-for-integration-tests
|
39
|
-
request_via_redirect 'GET', private_posts_path, nil, { 'X-User-Email' => user.email, 'X-User-Token' => user.authentication_token }
|
40
|
-
end.should raise_exception(RuntimeError, "`authenticate_user!` was called.")
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
@@ -1,35 +0,0 @@
|
|
1
|
-
require "spec_helper"
|
2
|
-
|
3
|
-
describe PrivatePostsController do
|
4
|
-
describe "routing" do
|
5
|
-
|
6
|
-
it "routes to #index" do
|
7
|
-
get("/private_posts").should route_to("private_posts#index")
|
8
|
-
end
|
9
|
-
|
10
|
-
it "routes to #new" do
|
11
|
-
get("/private_posts/new").should route_to("private_posts#new")
|
12
|
-
end
|
13
|
-
|
14
|
-
it "routes to #show" do
|
15
|
-
get("/private_posts/1").should route_to("private_posts#show", :id => "1")
|
16
|
-
end
|
17
|
-
|
18
|
-
it "routes to #edit" do
|
19
|
-
get("/private_posts/1/edit").should route_to("private_posts#edit", :id => "1")
|
20
|
-
end
|
21
|
-
|
22
|
-
it "routes to #create" do
|
23
|
-
post("/private_posts").should route_to("private_posts#create")
|
24
|
-
end
|
25
|
-
|
26
|
-
it "routes to #update" do
|
27
|
-
put("/private_posts/1").should route_to("private_posts#update", :id => "1")
|
28
|
-
end
|
29
|
-
|
30
|
-
it "routes to #destroy" do
|
31
|
-
delete("/private_posts/1").should route_to("private_posts#destroy", :id => "1")
|
32
|
-
end
|
33
|
-
|
34
|
-
end
|
35
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe "private_posts/edit" do
|
4
|
-
before(:each) do
|
5
|
-
@private_post = assign(:private_post, stub_model(PrivatePost,
|
6
|
-
:title => "MyString",
|
7
|
-
:body => "MyText"
|
8
|
-
))
|
9
|
-
end
|
10
|
-
|
11
|
-
it "renders the edit private_post form" do
|
12
|
-
render
|
13
|
-
|
14
|
-
# Run the generator again with the --webrat flag if you want to use webrat matchers
|
15
|
-
assert_select "form[action=?][method=?]", private_post_path(@private_post), "post" do
|
16
|
-
assert_select "input#private_post_title[name=?]", "private_post[title]"
|
17
|
-
assert_select "textarea#private_post_body[name=?]", "private_post[body]"
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe "private_posts/index" do
|
4
|
-
before(:each) do
|
5
|
-
assign(:private_posts, [
|
6
|
-
stub_model(PrivatePost,
|
7
|
-
:title => "Title",
|
8
|
-
:body => "MyText"
|
9
|
-
),
|
10
|
-
stub_model(PrivatePost,
|
11
|
-
:title => "Title",
|
12
|
-
:body => "MyText"
|
13
|
-
)
|
14
|
-
])
|
15
|
-
end
|
16
|
-
|
17
|
-
it "renders a list of private_posts" do
|
18
|
-
render
|
19
|
-
# Run the generator again with the --webrat flag if you want to use webrat matchers
|
20
|
-
assert_select "tr>td", :text => "Title".to_s, :count => 2
|
21
|
-
assert_select "tr>td", :text => "MyText".to_s, :count => 2
|
22
|
-
end
|
23
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe "private_posts/new" do
|
4
|
-
before(:each) do
|
5
|
-
assign(:private_post, stub_model(PrivatePost,
|
6
|
-
:title => "MyString",
|
7
|
-
:body => "MyText"
|
8
|
-
).as_new_record)
|
9
|
-
end
|
10
|
-
|
11
|
-
it "renders new private_post form" do
|
12
|
-
render
|
13
|
-
|
14
|
-
# Run the generator again with the --webrat flag if you want to use webrat matchers
|
15
|
-
assert_select "form[action=?][method=?]", private_posts_path, "post" do
|
16
|
-
assert_select "input#private_post_title[name=?]", "private_post[title]"
|
17
|
-
assert_select "textarea#private_post_body[name=?]", "private_post[body]"
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe "private_posts/show" do
|
4
|
-
before(:each) do
|
5
|
-
@private_post = assign(:private_post, stub_model(PrivatePost,
|
6
|
-
:title => "Title",
|
7
|
-
:body => "MyText"
|
8
|
-
))
|
9
|
-
end
|
10
|
-
|
11
|
-
it "renders attributes in <p>" do
|
12
|
-
render
|
13
|
-
# Run the generator again with the --webrat flag if you want to use webrat matchers
|
14
|
-
rendered.should match(/Title/)
|
15
|
-
rendered.should match(/MyText/)
|
16
|
-
end
|
17
|
-
end
|