Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
fortinet / lib / fortinet / usergroups.rb
Size: Mime:
# frozen_string_literal: true

module Fortinet
  # Represents a user group on the firewall
  class UserGroups
    def initialize(name, data: nil)
      @name = name
      @data = data
    end

    attr_reader :name

    def self.all
      Fortinet.do('get', '/api/v2/cmdb/user/group')['results'].map { |data| new(data['name'], data: data) }
    end

    def load
      @data = Fortinet.do('get', "/api/v2/cmdb/user/group/#{name}")['results']&.first
    end

    def loaded?
      !@data.nil?
    end

    def add_local_user(username)
      data = {}
      data['name'] = username
      Fortinet.do('post', "/api/v2/cmdb/user/group/#{name}/member", data)
    end

    def remove_local_user(username)
      Fortinet.do('delete', "/api/v2/cmdb/user/group/#{name}/member/#{username}")
    end

    def members_usernames
      load unless loaded?

      @data['member'].map { |m| m['name'] }
    end
  end
end