Skip to content

Commit feaeaf5

Browse files
Merge pull request #2443 from basecamp/remove-zero-padding-from-account-slug
Remove zero-padding from account slug
2 parents 1e92e4b + e105ca6 commit feaeaf5

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

config/initializers/tenanting/account_slug.rb

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
module AccountSlug
2-
PATTERN = /(\d{7,})/
3-
FORMAT = "%07d"
2+
PATTERN = /(\d+)/
43
PATH_INFO_MATCH = /\A(\/#{AccountSlug::PATTERN})/
54

65
class Extractor
@@ -40,7 +39,7 @@ def call(env)
4039
end
4140

4241
def self.decode(slug) slug.to_i end
43-
def self.encode(id) FORMAT % id end
42+
def self.encode(id) id.to_s end
4443
end
4544

4645
Rails.application.config.middleware.insert_after Rack::TempfileReaper, AccountSlug::Extractor

test/middleware/account_slug_extractor_test.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,15 @@ class AccountSlugExtractorTest < ActiveSupport::TestCase
4444
assert_nil captured.fetch(:current_account)
4545
end
4646

47+
test "encodes account IDs without zero-padding" do
48+
assert_equal "1", AccountSlug.encode(1)
49+
end
50+
51+
test "decodes both padded and non-padded slugs" do
52+
assert_equal 123, AccountSlug.decode("123")
53+
assert_equal 123, AccountSlug.decode("0000123")
54+
end
55+
4756
private
4857
def call_with_env(path, extra_env = {})
4958
captured = {}

0 commit comments

Comments
 (0)