diff options
Diffstat (limited to 'app/controllers/concerns/render_access_tokens.rb')
-rw-r--r-- | app/controllers/concerns/render_access_tokens.rb | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/app/controllers/concerns/render_access_tokens.rb b/app/controllers/concerns/render_access_tokens.rb new file mode 100644 index 00000000000..b0bbad7e37f --- /dev/null +++ b/app/controllers/concerns/render_access_tokens.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true +module RenderAccessTokens + extend ActiveSupport::Concern + + def active_access_tokens + tokens = finder(state: 'active', sort: 'expires_at_asc_id_desc').execute.preload_users + + if Feature.enabled?('access_token_pagination') + tokens = tokens.page(page) + add_pagination_headers(tokens) + end + + represent(tokens) + end + + def add_pagination_headers(relation) + Gitlab::Pagination::OffsetHeaderBuilder.new( + request_context: self, + per_page: relation.limit_value, + page: relation.current_page, + next_page: relation.next_page, + prev_page: relation.prev_page, + total: relation.total_count, + params: params.permit(:page, :per_page) + ).execute + end + + def page + (params[:page] || 1).to_i + end +end |