Files
gitlabhq/app/controllers/concerns/render_access_tokens.rb
2025-01-03 12:35:11 +00:00

48 lines
1.2 KiB
Ruby

# 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
size = tokens.size
tokens = tokens.page(page)
add_pagination_headers(tokens)
[represent(tokens), size]
end
def inactive_access_tokens
finder(state: 'inactive', sort: 'updated_at_desc').execute.preload_users
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
(pagination_params[:page] || 1).to_i
end
def expiry_ics(tokens)
cal = Icalendar::Calendar.new
tokens.each do |token|
cal.event do |event|
event.dtstart = Icalendar::Values::Date.new(token[:expires_at].delete('-'))
event.dtend = Icalendar::Values::Date.new(token[:expires_at].delete('-'))
event.summary = "Token #{token[:name]} expires today"
end
end
cal.to_ical
end
end