diff options
author | Nihad Abbasov <narkoz.2008@gmail.com> | 2011-11-15 17:08:20 +0400 |
---|---|---|
committer | Nihad Abbasov <narkoz.2008@gmail.com> | 2011-11-15 17:08:20 +0400 |
commit | ed5e19a518ebe62aeb2db87c55a45854df2dcb37 (patch) | |
tree | 79713a51d8974004cf56a2ecfd1f3af76d0b4d38 | |
parent | 32ca0b8cae4c4c871a0e6fb6add6749e33ec0f46 (diff) | |
download | gitlab-ce-ed5e19a518ebe62aeb2db87c55a45854df2dcb37.tar.gz |
allow user to reset his private token
-rw-r--r-- | app/controllers/profile_controller.rb | 5 | ||||
-rw-r--r-- | app/views/layouts/profile.html.haml | 2 | ||||
-rw-r--r-- | app/views/profile/password.html.haml | 13 | ||||
-rw-r--r-- | config/routes.rb | 1 | ||||
-rw-r--r-- | spec/requests/profile_spec.rb | 13 |
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 |