Skip to content
Snippets Groups Projects
Commit dc37c8aa authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets
Browse files

Refactored profile area

parent 8f9a450e
No related branches found
No related tags found
No related merge requests found
Showing
with 104 additions and 68 deletions
Loading
Loading
@@ -699,7 +699,14 @@ li.note {
.active {
img {
border:1px solid #ccc;
background:$hover;
@include border-radius(5px);
}
}
}
.btn-build-token {
float: left;
padding: 6px 20px;
margin-right: 12px;
}
Loading
Loading
@@ -160,6 +160,11 @@ $hover: #fdf5d9;
*/
@import "sections/notes.scss";
 
/**
* This file represent profile styles
*/
@import "sections/profile.scss";
/**
* Devise styles
*/
Loading
Loading
.profile_history {
.event_feed {
min-height:20px;
.avatar {
width:20px;
}
}
}
Loading
Loading
@@ -32,10 +32,14 @@ class ProfileController < ApplicationController
 
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
Loading
Loading
Loading
Loading
@@ -104,7 +104,8 @@ module ApplicationHelper
 
# 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"
Loading
Loading
Loading
Loading
@@ -9,20 +9,20 @@
%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
- 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"
.profile_history
= render @events
%hr
= paginate @events, theme: "gitlab"
- 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"
Loading
Loading
@@ -33,13 +33,13 @@
%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
Loading
Loading
%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"
Loading
Loading
@@ -63,7 +63,8 @@ Gitlab::Application.routes.draw do
#
# 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"
Loading
Loading
Loading
Loading
@@ -12,7 +12,7 @@ Feature: Profile
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
 
Loading
Loading
Loading
Loading
@@ -21,8 +21,8 @@ module SharedPaths
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
Loading
Loading
Loading
Loading
@@ -28,8 +28,8 @@ describe "Users Security" 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 }
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment