summaryrefslogtreecommitdiff
path: root/lib/user.rb
blob: 6078083ee4e63c9a7f3615da9d760f63d28ae9f2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
require_relative 'gitlab_net'

class User
  ANONYMOUS_USER = 'Anonymous'.freeze

  def initialize(key_id, audit_usernames: false)
    @key_id = key_id
    @audit_usernames = audit_usernames
  end

  def username
    @username ||= begin
      user = GitlabNet.new.discover(key_id)
      user ? "@#{user['username']}" : ANONYMOUS_USER
    end
  end

  def log_username
    audit_usernames ? username : "user with key #{key_id}"
  end

  private

  attr_reader :key_id, :audit_usernames
end