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 verify_usernames params.require(:user).permit(allowed_params) 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 def allowed_params core_params | url_params | other_params end def core_params %i[ name email username twitter_username github_username profile_image employment_title currently_learning available_for mostly_work_with currently_hacking_on location email_public education ] end def url_params %i[ facebook_url youtube_url behance_url dribbble_url medium_url gitlab_url linkedin_url twitch_url instagram_url website_url employer_url feed_url ] end def other_params %i[ email_newsletter email_comment_notifications email_follower_notifications summary organization_id org_admin bg_color_hex text_color_hex employer_name reputation_modifier saw_onboarding scholar_email ] end end end