chore: Removing duplicate callback to create auth token (#2624)

Removed after create callback in user model to create a new access token. This is already being taken care of by AccessTokenable module.

Fixes #2620
This commit is contained in:
Mrunal Selokar 2021-07-15 15:24:38 +05:30 committed by GitHub
parent b56512eb56
commit e0535168a0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 21 additions and 2 deletions

View file

@ -88,7 +88,6 @@ class User < ApplicationRecord
before_validation :set_password_and_uid, on: :create before_validation :set_password_and_uid, on: :create
after_create_commit :create_access_token
after_save :update_presence_in_redis, if: :saved_change_to_availability? after_save :update_presence_in_redis, if: :saved_change_to_availability?
scope :order_by_full_name, -> { order('lower(name) ASC') } scope :order_by_full_name, -> { order('lower(name) ASC') }

View file

@ -0,0 +1,12 @@
class RemoveDuplicateAccessTokensForExistingUsers < ActiveRecord::Migration[6.0]
def up
# find all models and group them on owner
grouped_tokens = AccessToken.all.group_by(&:owner)
grouped_tokens.each_value do |duplicates|
# we want to keep the latest token as it is being used in all requests
duplicates.pop
# Remaining ones are duplicates, delete them all
duplicates.each { |duplicate| AccessToken.find_by(id: duplicate).destroy }
end
end
end

View file

@ -10,7 +10,7 @@
# #
# It's strongly recommended that you check this file into your version control system. # It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 2021_07_08_140842) do ActiveRecord::Schema.define(version: 2021_07_14_110714) do
# These are extensions that must be enabled in order to support this database # These are extensions that must be enabled in order to support this database
enable_extension "pg_stat_statements" enable_extension "pg_stat_statements"

View file

@ -72,4 +72,12 @@ RSpec.describe User do
expect(user.valid_sso_auth_token?(sso_auth_token)).to eq false expect(user.valid_sso_auth_token?(sso_auth_token)).to eq false
end end
end end
describe 'access token' do
it 'creates a single access token upon user creation' do
new_user = create(:user)
token_count = AccessToken.where(owner: new_user).count
expect(token_count).to eq(1)
end
end
end end