diff --git a/app/controllers/concerns/register_helper.rb b/app/controllers/concerns/register_helper.rb index a229ef42f..e8ef12099 100644 --- a/app/controllers/concerns/register_helper.rb +++ b/app/controllers/concerns/register_helper.rb @@ -12,7 +12,7 @@ module RegisterHelper interactor = Gitea::RegisterInteractor.call({username: username, email: email, password: password}) if interactor.success? gitea_user = interactor.result - result = Gitea::User::GenerateTokenService.new(username, password).call + result = Gitea::User::GenerateTokenService.call(username, password) user.gitea_token = result['sha1'] user.gitea_uid = gitea_user['id'] if user.save! diff --git a/app/services/gitea/user/generate_token_service.rb b/app/services/gitea/user/generate_token_service.rb index 4508d741c..946bd68ce 100644 --- a/app/services/gitea/user/generate_token_service.rb +++ b/app/services/gitea/user/generate_token_service.rb @@ -9,14 +9,18 @@ class Gitea::User::GenerateTokenService < Gitea::ClientService def call - params = {} - url = "/users/#{username}/tokens".freeze - params = params.merge(token: token_params, data: request_params) - post(url, params) + params = Hash.new.merge(token: token_params, data: request_params) + response = post(url, params) + render_200_response(response) end private + + def url + "/users/#{@username}/tokens".freeze + end + def token_params { username: username, @@ -25,6 +29,10 @@ class Gitea::User::GenerateTokenService < Gitea::ClientService end def request_params - { name: username } + { name: "#{@username}-#{token_name}" } + end + + def token_name + SecureRandom.hex(6) end end