module Grafana::Admin

Public Instance Methods

create_user(properties={}) click to toggle source
# File lib/grafana/admin.rb, line 54
def create_user(properties={})
  endpoint = "/api/admin/users"
  @logger.info("Creating user: #{properties['name']}") if @debug
  @logger.info("Data: #{properties.to_s}") if @debug
  return post_request(endpoint, properties.to_json)
end
delete_user(user_id) click to toggle source
# File lib/grafana/admin.rb, line 44
def delete_user(user_id)
  if user_id == 1
    @logger.warn("Can't delete user ID #{user_id} (admin user)") if @debug
    return false
  end
  endpoint = "/api/admin/users/#{user_id}"
  @logger.info("Deleting user ID #{user_id} (DELETE #{endpoint})") if @debug
  return delete_request(endpoint)
end
get_admin_settings() click to toggle source
# File lib/grafana/admin.rb, line 6
def get_admin_settings()
  endpoint = "/api/admin/settings"
  @logger.info("Getting admin settings (GET #{endpoint})") if @debug
  return get_request(endpoint)
end
update_user_pass(user_id,password) click to toggle source
# File lib/grafana/admin.rb, line 61
def update_user_pass(user_id,password)
  endpoint = " /api/admin/users/#{user_id}/#{password}"
  @logger.info("Updating password for user ID #{user_id} (PUT #{endpoint})") if @debug
  return put_request(endpoint,properties)
end
update_user_permissions(id, perm) click to toggle source
# File lib/grafana/admin.rb, line 12
def update_user_permissions(id, perm)

  valid_perms = ['Viewer','Editor','Read Only Editor','Admin']

  if perm.class.to_s == "String" && !valid_perms.include?(perm)
    @logger.warn("Basic user permissions include: #{valid_perms.join(',')}") if @debug
    return false
  elsif perm.class.to_s == "Hash" &&
    ( !perm.has_key?('isGrafanaAdmin') || ![true,false].include?(perm['isGrafanaAdmin']) )
    @logger.warn("Grafana admin permission must be either true or false") if @debug
    return false
  end

  @logger.info("Updating user ID #{id} permissions") if @debug

  if perm.class.to_s == 'Hash'
    endpoint = "/api/admin/users/#{id}/permissions"
    @logger.info("Updating user ID #{id} permissions (PUT #{endpoint})") if @debug
    return put_request(endpoint, {"isGrafanaAdmin" => perm['isGrafanaAdmin']}.to_json)
  else
    org = self.get_current_org()
    endpoint = "/api/orgs/#{org['id']}/users/#{id}"
    @logger.info("Updating user ID #{id} permissions (PUT #{endpoint})") if @debug
    user = { 
      'name' => org['name'], 
      'orgId' => org['id'], 
      'role' => perm.downcase.capitalize
    }
    return patch_request(endpoint, user.to_json)
  end
end