Skip to content

Commit 056f5ab

Browse files
committed
Merge pull request #45 from RexMorgan/update-username
Users can now update their username from their settings page
2 parents 4733183 + 273a038 commit 056f5ab

File tree

6 files changed

+14
-4
lines changed

6 files changed

+14
-4
lines changed

app/controllers/usernames_controller.rb

+4-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@ class UsernamesController < ApplicationController
22
skip_before_filter :require_registration
33

44
def show
5-
if User.with_username(params[:id]) || User::RESERVED.include?(params[:id].downcase)
5+
# allow validation to pass if it's the user's username that they're trying to validate (for edit username)
6+
if signed_in? && current_user.username.downcase == params[:id].downcase
7+
head :ok
8+
elsif User.with_username(params[:id]) || User::RESERVED.include?(params[:id].downcase)
69
head :forbidden
710
else
811
head :ok

app/controllers/users_controller.rb

+2-1
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,8 @@ def user_update_params
299299
:team_avatar,
300300
:team_banner,
301301
:team_responsibilities,
302-
:title
302+
:title,
303+
:username
303304
)
304305
end
305306

app/models/user.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ class User < ActiveRecord::Base
114114
include ResqueSupport::Basic
115115
include NetValidators
116116

117-
attr_protected :admin, :username, :id, :github_id, :twitter_id, :linkedin_id, :api_key
117+
attr_protected :admin, :id, :github_id, :twitter_id, :linkedin_id, :api_key
118118

119119
mount_uploader :avatar, AvatarUploader
120120
mount_uploader :banner, BannerUploader

app/views/users/edit.html.haml

+6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
= content_for :javascript do
22
= javascript_include_tag 'https://s3.amazonaws.com/cdn.getchute.com/media-chooser.min.js'
33
= javascript_include_tag 'settings.js'
4+
= javascript_include_tag 'username-validation.js'
45

56
- content_for :mixpanel do
67
= record_view_event('settings')
@@ -63,6 +64,11 @@
6364
.setting
6465
= form.label :location, "Location: <em>required</em>".html_safe
6566
= form.text_field :location
67+
.setting
68+
= form.label :username, "Username: <em>required</em>".html_safe
69+
= form.text_field :username, 'data-validation' => usernames_path, :maxlength => 15
70+
#username_validation
71+
%p Changing your username will make your previous username available to someone else.
6672
.setting
6773
= form.label :about, "Bio:"
6874
= form.text_area :about

app/views/users/new.html.haml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
=content_for :javascript do
22
=javascript_include_tag 'jquery.ketchup.all.min.js'
3-
=javascript_include_tag 'signup.js'
3+
=javascript_include_tag 'username-validation.js'
44

55
-content_for :page_title do
66
coderwall : level up (step 2 of 2)

0 commit comments

Comments
 (0)