28 lines
774 B
Ruby
28 lines
774 B
Ruby
# frozen_string_literal: true
|
|
|
|
module EuchreCamp
|
|
module Actions
|
|
module Admin
|
|
module Players
|
|
class Edit < EuchreCamp::Action
|
|
include Deps[players_repo: 'repositories.players']
|
|
|
|
def handle(request, response)
|
|
player_id = request.params[:id]
|
|
player = players_repo.by_id(player_id)
|
|
user = current_user(request)
|
|
|
|
# Authorization: User can edit own profile, or admin can edit any
|
|
unless authorize(request, response, :edit_own_profile, { id: player_id }) ||
|
|
authorize(request, response, :edit_any_record)
|
|
return
|
|
end
|
|
|
|
render_with_player(request, response, player: player)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|