class Travis::Client::User

def admin_access

def admin_access
  permissions['admin']
end

def admin_access?(repo)

def admin_access?(repo)
  admin_access.include? repo
end

def channels

def channels
  load_attribute(:is_syncing) # dummy to trigger load, as channels might not be included
  attributes['channels'] ||= ['common']
end

def permissions

def permissions
  attributes['permissions'] ||= begin
    repos = session.get('/users/permissions')
    repos.each_value { |r| r.compact! }
    repos
  end
end

def pull_access

def pull_access
  permissions['pull']
end

def pull_access?(repo)

def pull_access?(repo)
  pull_access.include? repo
end

def push_access

def push_access
  permissions['push']
end

def push_access?(repo)

def push_access?(repo)
  push_access.include? repo
end

def repositories

def repositories
  permissions['permissions']
end

def sync

def sync
  session.post_raw('/users/sync')
  reload
end

def synced_at=(time)

def synced_at=(time)
  set_attribute(:synced_at, time(time))
end