summaryrefslogtreecommitdiff
path: root/app/models/personal_access_token.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/personal_access_token.rb')
-rw-r--r--app/models/personal_access_token.rb13
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