Skip to content

Commit 9850591

Browse files
committed
Extracted dangerous sends to a method call that will invoke the appropriate action if the provider is a known provider
1 parent aa83ecc commit 9850591

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

app/controllers/users_controller.rb

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,9 @@ def clear_provider
198198
clear_provider_params = params.permit(:id, :provider)
199199

200200
@user = User.find(clear_provider_params[:id])
201-
@user.send("clear_#{clear_provider_params[:provider]}!")
201+
202+
clear_provider_for_user(clear_provider_params[:provider], @user)
203+
202204
redirect_to(badge_url(username: @user.username))
203205
end
204206

@@ -228,12 +230,21 @@ def unlink_provider
228230
unlink_provider_params = params.permit(:provider)
229231

230232
provider = unlink_provider_params[:provider]
231-
current_user.send("clear_#{provider}!") if current_user.can_unlink_provider?(provider)
233+
clear_provider_for_user(provider, user) if current_user.can_unlink_provider?(provider)
232234
redirect_to(edit_user_url(current_user))
233235
end
234236

235237
protected
236238

239+
def clear_provider_for_user(provider, user)
240+
case provider
241+
when 'twitter' then user.clear_twitter!
242+
when 'github' then user.clear_github!
243+
when 'linkedin' then user.clear_linkedin!
244+
else raise("Unknown Provider: '#{provider}'")
245+
end
246+
end
247+
237248
def admin_of_premium_team?
238249
current_user != @user && @user.team.try(:admin?, current_user)
239250
end

0 commit comments

Comments
 (0)