diff options
Diffstat (limited to 'app/models/personal_access_token.rb')
-rw-r--r-- | app/models/personal_access_token.rb | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/app/models/personal_access_token.rb b/app/models/personal_access_token.rb index 5aa5f2c842b..3b07551fe05 100644 --- a/app/models/personal_access_token.rb +++ b/app/models/personal_access_token.rb @@ -9,7 +9,9 @@ class PersonalAccessToken < ApplicationRecord add_authentication_token_field :token, digest: true REDIS_EXPIRY_TIME = 3.minutes - TOKEN_LENGTH = 20 + + # PATs are 20 characters + optional configurable settings prefix (0..20) + TOKEN_LENGTH_RANGE = (20..40).freeze serialize :scopes, Array # rubocop:disable Cop/ActiveRecordSerialize @@ -77,6 +79,15 @@ class PersonalAccessToken < ApplicationRecord ) end + def self.token_prefix + Gitlab::CurrentSettings.current_application_settings.personal_access_token_prefix + end + + override :format_token + def format_token(token) + "#{self.class.token_prefix}#{token}" + end + protected def validate_scopes |