mirror of
https://github.com/wahyd4/gitlabhq.git
synced 2026-08-10 21:26:07 +10:00
This commit allows user to show one of their emails in profile page, or don't show email in this page.
77 lines
1.7 KiB
Ruby
77 lines
1.7 KiB
Ruby
class ProfilesController < ApplicationController
|
|
include ActionView::Helpers::SanitizeHelper
|
|
|
|
before_filter :user
|
|
before_filter :authorize_change_username!, only: :update_username
|
|
skip_before_filter :require_email, only: [:show, :update]
|
|
|
|
layout 'profile'
|
|
|
|
def show
|
|
end
|
|
|
|
def design
|
|
end
|
|
|
|
def applications
|
|
@applications = current_user.oauth_applications
|
|
@authorized_tokens = current_user.oauth_authorized_tokens
|
|
@authorized_apps = @authorized_tokens.map(&:application).uniq
|
|
end
|
|
|
|
def update
|
|
user_params.except!(:email) if @user.ldap_user?
|
|
|
|
if @user.update_attributes(user_params)
|
|
flash[:notice] = "Profile was successfully updated"
|
|
else
|
|
messages = @user.errors.full_messages.uniq.join('. ')
|
|
flash[:alert] = "Failed to update profile. #{messages}"
|
|
end
|
|
|
|
respond_to do |format|
|
|
format.html { redirect_to :back }
|
|
format.js
|
|
end
|
|
end
|
|
|
|
def reset_private_token
|
|
if current_user.reset_authentication_token!
|
|
flash[:notice] = "Token was successfully updated"
|
|
end
|
|
|
|
redirect_to profile_account_path
|
|
end
|
|
|
|
def history
|
|
@events = current_user.recent_events.page(params[:page]).per(PER_PAGE)
|
|
end
|
|
|
|
def update_username
|
|
@user.update_attributes(username: user_params[:username])
|
|
|
|
respond_to do |format|
|
|
format.js
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def user
|
|
@user = current_user
|
|
end
|
|
|
|
def authorize_change_username!
|
|
return render_404 unless @user.can_change_username?
|
|
end
|
|
|
|
def user_params
|
|
params.require(:user).permit(
|
|
:email, :password, :password_confirmation, :bio, :name,
|
|
:username, :skype, :linkedin, :twitter, :website_url,
|
|
:color_scheme_id, :theme_id, :avatar, :hide_no_ssh_key,
|
|
:hide_no_password, :location, :public_email
|
|
)
|
|
end
|
|
end
|