Class: PersonalAccessTokens::RotateService
- Inherits:
-
Object
- Object
- PersonalAccessTokens::RotateService
- Includes:
- Gitlab::InternalEventsTracking
- Defined in:
- app/services/personal_access_tokens/rotate_service.rb
Direct Known Subclasses
GroupAccessTokens::RotateService, ProjectAccessTokens::RotateService
Constant Summary collapse
- EXPIRATION_PERIOD =
1.week
Instance Method Summary collapse
- #execute ⇒ Object
-
#initialize(current_user, token, resource = nil, params = {}) ⇒ RotateService
constructor
A new instance of RotateService.
Methods included from Gitlab::InternalEventsTracking
Constructor Details
#initialize(current_user, token, resource = nil, params = {}) ⇒ RotateService
Returns a new instance of RotateService.
9 10 11 12 13 14 15 |
# File 'app/services/personal_access_tokens/rotate_service.rb', line 9 def initialize(current_user, token, resource = nil, params = {}) @current_user = current_user @token = token @resource = resource @params = params.dup @target_user = token.user end |
Instance Method Details
#execute ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'app/services/personal_access_tokens/rotate_service.rb', line 17 def execute return error_response(s_('AccessTokens|Token already revoked')) if token.revoked? response = ServiceResponse.success PersonalAccessToken.transaction do unless token.revoke! response = error_response(s_('AccessTokens|Failed to revoke token')) raise ActiveRecord::Rollback end response = create_access_token raise ActiveRecord::Rollback unless response.success? track_rotation_event end NotificationService.new.access_token_rotated(token.user, token.name) if response.success? response end |