Skip to content

Instantly share code, notes, and snippets.

@gazay

gazay/q1.md Secret

Created April 19, 2019 04:00
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save gazay/01220cc8438be937c05f3c245f30aee5 to your computer and use it in GitHub Desktop.
Save gazay/01220cc8438be937c05f3c245f30aee5 to your computer and use it in GitHub Desktop.

В доставшемся вам приложении есть такой роут/экшн:

# routes.rb
match 'projects/:project_id/users/new_from_invite' => "user_invites#new_from_invite", via: :all

# user_invites_controller.rb
class UserInvitesController < ApplicationController
  def new_from_invite
    user = Project.find!(params[:project_id]).users.create(email: params[:email])
    inviter = User.find_by(inviter_token: params[:inviter_token])
    PayForReferralWorker.perform(inviter.id)
    SetUpPasswordWorker.perform(user.id)
  rescue
    render text: 'Project not found'
  end
end

По этому пути попадает пользователь из письма-приглашения. Вместе с project_id, который указан прямо в ссылке в параметрах запроса ожидается:

  • токен человека который пригласил
  • почта по которой зарегистрировать нового пользователя в проекте

Укажите на все проблемы этого кода, парой слов объясняя чем чревата каждая

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment