summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNihad Abbasov <narkoz.2008@gmail.com>2011-11-15 17:08:20 +0400
committerNihad Abbasov <narkoz.2008@gmail.com>2011-11-15 17:08:20 +0400
commited5e19a518ebe62aeb2db87c55a45854df2dcb37 (patch)
tree79713a51d8974004cf56a2ecfd1f3af76d0b4d38
parent32ca0b8cae4c4c871a0e6fb6add6749e33ec0f46 (diff)
downloadgitlab-ce-ed5e19a518ebe62aeb2db87c55a45854df2dcb37.tar.gz
allow user to reset his private token
-rw-r--r--app/controllers/profile_controller.rb5
-rw-r--r--app/views/layouts/profile.html.haml2
-rw-r--r--app/views/profile/password.html.haml13
-rw-r--r--config/routes.rb1
-rw-r--r--spec/requests/profile_spec.rb13
5 files changed, 33 insertions, 1 deletions
diff --git a/app/controllers/profile_controller.rb b/app/controllers/profile_controller.rb
index 2e58f3e1d6d..232bddb7dd2 100644
--- a/app/controllers/profile_controller.rb
+++ b/app/controllers/profile_controller.rb
@@ -25,4 +25,9 @@ class ProfileController < ApplicationController
render :action => "password"
end
end
+
+ def reset_private_token
+ current_user.reset_authentication_token!
+ redirect_to profile_password_path
+ end
end
diff --git a/app/views/layouts/profile.html.haml b/app/views/layouts/profile.html.haml
index e0e532442a4..c3865608c63 100644
--- a/app/views/layouts/profile.html.haml
+++ b/app/views/layouts/profile.html.haml
@@ -18,7 +18,7 @@
.fixed
%aside
= link_to "Profile", profile_path, :class => current_page?(:controller => "profile", :action => :show) ? "current" : nil
- = link_to "Password", profile_password_path, :class => current_page?(:controller => "profile", :action => :password) ? "current" : nil
+ = link_to "Password & token", profile_password_path, :class => current_page?(:controller => "profile", :action => :password) ? "current" : nil
= link_to keys_path, :class => controller.controller_name == "keys" ? "current" : nil do
Keys
- unless current_user.keys.empty?
diff --git a/app/views/profile/password.html.haml b/app/views/profile/password.html.haml
index 3e82143de47..41e6df5cb50 100644
--- a/app/views/profile/password.html.haml
+++ b/app/views/profile/password.html.haml
@@ -18,3 +18,16 @@
.actions
= f.submit 'Save', :class => "lbutton vm"
+%br
+%br
+%br
+
+= form_for @user, :url => profile_reset_private_token_path, :method => :put do |f|
+ %p
+ Current private token:
+ %strong
+ = current_user.private_token
+ %em.cred
+ keep it in secret!
+ .actions
+ = f.submit 'Reset', :confirm => "Are you sure?", :class => "lbutton vm"
diff --git a/config/routes.rb b/config/routes.rb
index 09492e328bb..7c239e9f6f6 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -17,6 +17,7 @@ Gitlab::Application.routes.draw do
get "errors/gitosis"
get "profile/password", :to => "profile#password"
put "profile/password", :to => "profile#password_update"
+ put "profile/reset_private_token", :to => "profile#reset_private_token"
put "profile/edit", :to => "profile#social_update"
get "profile", :to => "profile#show"
get "dashboard", :to => "dashboard#index"
diff --git a/spec/requests/profile_spec.rb b/spec/requests/profile_spec.rb
index eca1c12e800..5d2c01d1063 100644
--- a/spec/requests/profile_spec.rb
+++ b/spec/requests/profile_spec.rb
@@ -29,6 +29,19 @@ describe "Profile" do
it { @user.twitter.should == 'testtwitter' }
end
+ describe "Reset private token" do
+ before do
+ visit profile_password_path
+ end
+
+ it "should reset private token" do
+ user_first_token = @user.private_token
+ click_button "Reset"
+ @user.reload
+ @user.private_token.should_not == user_first_token
+ end
+ end
+
describe "Password update" do
before do
visit profile_password_path