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 | ... | ... |