mirror of
https://github.com/gitlabhq/gitlabhq.git
synced 2025-08-06 11:10:08 +00:00
48 lines
1.2 KiB
Ruby
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
|