.active {
img {
border:1px solid #ccc;
+ background:$hover;
@include border-radius(5px);
}
}
}
+
+.btn-build-token {
+ float: left;
+ padding: 6px 20px;
+ margin-right: 12px;
+}
@import "sections/notes.scss";
/**
+ * This file represent profile styles
+ */
+@import "sections/profile.scss";
+
+/**
* Devise styles
*/
@import "sections/login.scss";
--- /dev/null
+.profile_history {
+ .event_feed {
+ min-height:20px;
+ .avatar {
+ width:20px;
+ }
+ }
+}
def reset_private_token
current_user.reset_authentication_token!
- redirect_to profile_token_path
+ redirect_to profile_account_path
end
- private
+ def history
+ @events = current_user.recent_events.page(params[:page]).per(20)
+ end
+
+ private
def user
@user = current_user
# Profile Area
when :profile; current_page?(controller: "profile", action: :show)
- when :password; current_page?(controller: "profile", action: :password)
+ when :history; current_page?(controller: "profile", action: :history)
+ when :account; current_page?(controller: "profile", action: :account)
when :token; current_page?(controller: "profile", action: :token)
when :design; current_page?(controller: "profile", action: :design)
when :ssh_keys; controller.controller_name == "keys"
%li.home{class: tab_class(:profile)}
= link_to "Profile", profile_path
- %li{class: tab_class(:password)}
- = link_to "Authentication", profile_password_path
+ %li{class: tab_class(:account)}
+ = link_to "Account", profile_account_path
%li{class: tab_class(:ssh_keys)}
= link_to keys_path do
SSH Keys
%span.count= current_user.keys.count
- %li{class: tab_class(:token)}
- = link_to "Token", profile_token_path
-
%li{class: tab_class(:design)}
= link_to "Design", profile_design_path
+ %li{class: tab_class(:history)}
+ = link_to "History", profile_history_path
+
.content
= yield
--- /dev/null
+- if Gitlab.config.omniauth_enabled?
+ %fieldset
+ %legend
+ %h3.page_title Social Accounts
+ .oauth_select_holder
+ %p.hint Tip: Click on icon to activate sigin with one of the following services
+ - User.omniauth_providers.each do |provider|
+ %span{class: oauth_active_class(provider) }
+ = link_to authbutton(provider, 32), omniauth_authorize_path(User, provider)
+
+
+%fieldset
+ %legend
+ %h3.page_title
+ Private token
+ %span.cred.right
+ keep it in secret!
+ .padded
+ = form_for @user, url: profile_reset_private_token_path, method: :put do |f|
+ .data
+ %p.slead
+ Private token used to access application resources without authentication.
+ %br
+ It can be used for atom feed or API
+ %p.cgray
+ - if current_user.private_token
+ = text_field_tag "token", current_user.private_token, class: "xxlarge large_text"
+ = f.submit 'Reset', confirm: "Are you sure?", class: "btn primary btn-build-token"
+ - else
+ %span You don`t have one yet. Click generate to fix it.
+ = f.submit 'Generate', class: "btn success btn-build-token"
+
+%fieldset
+ %legend
+ %h3.page_title Password
+ = form_for @user, url: profile_password_path, method: :put do |f|
+ .padded
+ %p.slead After successful password update you will be redirected to login page where you should login with new password
+ -if @user.errors.any?
+ .alert-message.block-message.error
+ %ul
+ - @user.errors.full_messages.each do |msg|
+ %li= msg
+
+ .clearfix
+ = f.label :password
+ .input= f.password_field :password
+ .clearfix
+ = f.label :password_confirmation
+ .input= f.password_field :password_confirmation
+ .actions
+ = f.submit 'Save', class: "btn save-btn"
+
+
+
+
+
--- /dev/null
+.profile_history
+ = render @events
+%hr
+= paginate @events, theme: "gitlab"
+
+++ /dev/null
-- if Gitlab.config.omniauth_enabled?
- %h3.page_title Accounts
- %hr
- %p.hint Tip: Click on icon to activate sigin with one of the following services
- .oauth_select_holder
- - User.omniauth_providers.each do |provider|
- %span{class: oauth_active_class(provider) }
- = link_to authbutton(provider, 32), omniauth_authorize_path(User, provider)
-
-.clearfix.prepend-top-20
-%h3.page_title Password
-%hr
-
-= form_for @user, url: profile_password_path, method: :put do |f|
- %p.slead After successful password update you will be redirected to login page where you should login with new password
- -if @user.errors.any?
- .alert-message.block-message.error
- %ul
- - @user.errors.full_messages.each do |msg|
- %li= msg
-
- .clearfix
- = f.label :password
- .input= f.password_field :password
- .clearfix
- = f.label :password_confirmation
- .input= f.password_field :password_confirmation
- .actions
- = f.submit 'Save', class: "btn save-btn"
%ul
-unless Gitlab.config.disable_gravatar?
%li
- %p.hint You can change your avatar at gravatar.com
+ %p.hint You can change your avatar at #{link_to "gravatar.com", "http://gravatar.com"}
- if Gitlab.config.omniauth_enabled? && @user.provider?
%li
%p.hint
You can login through #{@user.provider.titleize}!
- = link_to "click here to change", profile_password_path
+ = link_to "click here to change", profile_account_path
%hr
.row
+++ /dev/null
-%h3.page_title
- Private token
- %span.cred.right
- keep it in secret!
-%hr
-= form_for @user, url: profile_reset_private_token_path, method: :put do |f|
- .data
- %p.slead
- Private token used to access application resources without authentication.
- %br
- It can be used for atom feed or API
- %p.cgray
- - if current_user.private_token
- = text_field_tag "token", current_user.private_token, class: "xxlarge large_text"
- - else
- You don`t have one yet. Click generate to fix it.
- .actions
- - if current_user.private_token
- = f.submit 'Reset', confirm: "Are you sure?", class: "btn"
- - else
- = f.submit 'Generate', class: "btn primary"
-
-
#
# Profile Area
#
- get "profile/password", :to => "profile#password"
+ get "profile/account", :to => "profile#account"
+ get "profile/history", :to => "profile#history"
put "profile/password", :to => "profile#password_update"
get "profile/token", :to => "profile#token"
put "profile/reset_private_token", :to => "profile#reset_private_token"
And I should see new contact info
Scenario: I change my password
- Given I visit profile password page
+ Given I visit profile account page
Then I change my password
And I should be redirected to sign in page
visit profile_path
end
- Given 'I visit profile password page' do
- visit profile_password_path
+ Given 'I visit profile account page' do
+ visit profile_account_path
end
Given 'I visit profile token page' do
it { should be_denied_for :visitor }
end
- describe "GET /profile/password" do
- subject { profile_password_path }
+ describe "GET /profile/account" do
+ subject { profile_account_path }
it { should be_allowed_for @u1 }
it { should be_allowed_for :admin }