simple_token_authentication 1.2.0 → 1.2.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
[![Gem Version](https://badge.fury.io/rb/simple_token_authentication.png)](http://badge.fury.io/rb/simple_token_authentication)
|
5
5
|
[![Build Status](https://travis-ci.org/gonzalo-bulnes/simple_token_authentication.png?branch=master)](https://travis-ci.org/gonzalo-bulnes/simple_token_authentication)
|
6
|
+
[![Code Climate](https://codeclimate.com/github/gonzalo-bulnes/simple_token_authentication.png)](https://codeclimate.com/github/gonzalo-bulnes/simple_token_authentication)
|
7
|
+
[![Dependency Status](https://gemnasium.com/gonzalo-bulnes/simple_token_authentication.svg)](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
|