Commit 003bf61258ea20128315076936f09ea198e56bcb
1 parent
8d74123d
Exists in
master
and in
4 other branches
add auth token for users
Showing
5 changed files
with
19 additions
and
7 deletions
Show diff stats
app/models/user.rb
1 | 1 | class User < ActiveRecord::Base |
2 | 2 | # Include default devise modules. Others available are: |
3 | 3 | # :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable |
4 | - devise :database_authenticatable, | |
4 | + devise :database_authenticatable, :token_authenticatable, | |
5 | 5 | :recoverable, :rememberable, :trackable, :validatable |
6 | 6 | |
7 | 7 | # Setup accessible (or protected) attributes for your model |
... | ... | @@ -25,6 +25,7 @@ class User < ActiveRecord::Base |
25 | 25 | :foreign_key => :assignee_id, |
26 | 26 | :dependent => :destroy |
27 | 27 | |
28 | + before_create :ensure_authentication_token | |
28 | 29 | scope :not_in_project, lambda { |project| where("id not in (:ids)", :ids => project.users.map(&:id) ) } |
29 | 30 | |
30 | 31 | def identifier | ... | ... |
config/initializers/devise.rb
... | ... | @@ -158,11 +158,11 @@ Devise.setup do |config| |
158 | 158 | |
159 | 159 | # ==> Configuration for :token_authenticatable |
160 | 160 | # Defines name of the authentication token params key |
161 | - # config.token_authentication_key = :auth_token | |
161 | + config.token_authentication_key = :private_token | |
162 | 162 | |
163 | 163 | # If true, authentication through token does not store user in session and needs |
164 | 164 | # to be supplied on each request. Useful if you are using the token as API token. |
165 | - # config.stateless_token = false | |
165 | + config.stateless_token = true | |
166 | 166 | |
167 | 167 | # ==> Scopes configuration |
168 | 168 | # Turn scoped views on. Before rendering "sessions/new", it will first check for | ... | ... |
db/migrate/20111115063954_add_authentication_token_to_users.rb
0 → 100644
db/schema.rb
... | ... | @@ -11,7 +11,7 @@ |
11 | 11 | # |
12 | 12 | # It's strongly recommended to check this file into your version control system. |
13 | 13 | |
14 | -ActiveRecord::Schema.define(:version => 20111111093150) do | |
14 | +ActiveRecord::Schema.define(:version => 20111115063954) do | |
15 | 15 | |
16 | 16 | create_table "issues", :force => true do |t| |
17 | 17 | t.string "title" |
... | ... | @@ -103,6 +103,7 @@ ActiveRecord::Schema.define(:version => 20111111093150) do |
103 | 103 | t.string "skype", :default => "", :null => false |
104 | 104 | t.string "linkedin", :default => "", :null => false |
105 | 105 | t.string "twitter", :default => "", :null => false |
106 | + t.string "authentication_token" | |
106 | 107 | end |
107 | 108 | |
108 | 109 | add_index "users", ["email"], :name => "index_users_on_email", :unique => true | ... | ... |
spec/models/user_spec.rb
... | ... | @@ -19,15 +19,20 @@ describe User do |
19 | 19 | user.identifier.should == "test_mail.com" |
20 | 20 | end |
21 | 21 | |
22 | + it "should have authentication token" do | |
23 | + user = Factory(:user) | |
24 | + user.authentication_token.should_not == "" | |
25 | + end | |
26 | + | |
22 | 27 | describe "dependent" do |
23 | - before do | |
28 | + before do | |
24 | 29 | @user = Factory :user |
25 | - @note = Factory :note, | |
30 | + @note = Factory :note, | |
26 | 31 | :author => @user, |
27 | 32 | :project => Factory(:project) |
28 | 33 | end |
29 | 34 | |
30 | - it "should destroy all notes with user" do | |
35 | + it "should destroy all notes with user" do | |
31 | 36 | Note.find_by_id(@note.id).should_not be_nil |
32 | 37 | @user.destroy |
33 | 38 | Note.find_by_id(@note.id).should be_nil | ... | ... |