docbrown/app/controllers/admin/users_controller.rb
Anna Buianova 1a0d4667c5 Unique twitter and github usernames #2061 (#2255)
* Set github and twitter usernames to nil if they are blank

* Verify github and twitter username in the Admin::UsersController (just in case)

* Add unique indexs on users twitter_username and github_username
2019-04-02 18:16:29 -04:00

64 lines
1.7 KiB
Ruby

module Admin
class UsersController < Admin::ApplicationController
def update
user = User.find(params[:id])
if user.errors.messages.blank? && user.update(user_params)
flash[:notice] = "User successfully updated"
redirect_to "/admin/users/#{params[:id]}"
else
render :new, locals: { page: Administrate::Page::Form.new(dashboard, user) }
end
end
private
def user_params
accessible = %i[
name
email
username
twitter_username
github_username
profile_image
website_url
summary
email_newsletter
email_comment_notifications
email_follower_notifications
organization_id
org_admin
bg_color_hex
text_color_hex
employer_name
employer_url
employment_title
currently_learning
available_for
mostly_work_with
currently_hacking_on
location
email_public
education
feed_url
reputation_modifier
saw_onboarding
scholar_email
facebook_url
behance_url
dribbble_url
medium_url
gitlab_url
linkedin_url
]
accessible << %i[password password_confirmation] if params[:user][:password].present?
verify_usernames params.require(:user).permit(accessible)
end
# make sure usernames are not empty, to be able to use the database unique index
def verify_usernames(user_params)
user_params[:twitter_username] = nil if user_params[:twitter_username] == ""
user_params[:github_username] = nil if user_params[:github_username] == ""
user_params
end
end
end