Commit 003bf612 authored by Nihad Abbasov's avatar Nihad Abbasov
Browse files

add auth token for users

parent 970cea312cb2
class User < ActiveRecord::Base class User < ActiveRecord::Base
# Include default devise modules. Others available are: # Include default devise modules. Others available are:
# :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable # :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, devise :database_authenticatable, :token_authenticatable,
:recoverable, :rememberable, :trackable, :validatable :recoverable, :rememberable, :trackable, :validatable
# Setup accessible (or protected) attributes for your model # Setup accessible (or protected) attributes for your model
...@@ -25,6 +25,7 @@ class User < ActiveRecord::Base ...@@ -25,6 +25,7 @@ class User < ActiveRecord::Base
:foreign_key => :assignee_id, :foreign_key => :assignee_id,
:dependent => :destroy :dependent => :destroy
before_create :ensure_authentication_token
scope :not_in_project, lambda { |project| where("id not in (:ids)", :ids => project.users.map(&:id) ) } scope :not_in_project, lambda { |project| where("id not in (:ids)", :ids => project.users.map(&:id) ) }
def identifier def identifier
......
...@@ -158,11 +158,11 @@ ...@@ -158,11 +158,11 @@
# ==> Configuration for :token_authenticatable # ==> Configuration for :token_authenticatable
# Defines name of the authentication token params key # Defines name of the authentication token params key
# config.token_authentication_key = :auth_token config.token_authentication_key = :private_token
# If true, authentication through token does not store user in session and needs # If true, authentication through token does not store user in session and needs
# to be supplied on each request. Useful if you are using the token as API token. # to be supplied on each request. Useful if you are using the token as API token.
# config.stateless_token = false config.stateless_token = true
# ==> Scopes configuration # ==> Scopes configuration
# Turn scoped views on. Before rendering "sessions/new", it will first check for # Turn scoped views on. Before rendering "sessions/new", it will first check for
......
class AddAuthenticationTokenToUsers < ActiveRecord::Migration
def change
add_column :users, :authentication_token, :string
end
end
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
# #
# It's strongly recommended to check this file into your version control system. # It's strongly recommended to check this file into your version control system.
ActiveRecord::Schema.define(:version => 20111111093150) do ActiveRecord::Schema.define(:version => 20111115063954) do
create_table "issues", :force => true do |t| create_table "issues", :force => true do |t|
t.string "title" t.string "title"
...@@ -103,6 +103,7 @@ ...@@ -103,6 +103,7 @@
t.string "skype", :default => "", :null => false t.string "skype", :default => "", :null => false
t.string "linkedin", :default => "", :null => false t.string "linkedin", :default => "", :null => false
t.string "twitter", :default => "", :null => false t.string "twitter", :default => "", :null => false
t.string "authentication_token"
end end
add_index "users", ["email"], :name => "index_users_on_email", :unique => true add_index "users", ["email"], :name => "index_users_on_email", :unique => true
......
...@@ -19,15 +19,20 @@ ...@@ -19,15 +19,20 @@
user.identifier.should == "test_mail.com" user.identifier.should == "test_mail.com"
end end
it "should have authentication token" do
user = Factory(:user)
user.authentication_token.should_not == ""
end
describe "dependent" do describe "dependent" do
before do before do
@user = Factory :user @user = Factory :user
@note = Factory :note, @note = Factory :note,
:author => @user, :author => @user,
:project => Factory(:project) :project => Factory(:project)
end end
it "should destroy all notes with user" do it "should destroy all notes with user" do
Note.find_by_id(@note.id).should_not be_nil Note.find_by_id(@note.id).should_not be_nil
@user.destroy @user.destroy
Note.find_by_id(@note.id).should be_nil Note.find_by_id(@note.id).should be_nil
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment