Module: InfluxDB::Query::User

Included in:
Client
Defined in:
lib/influxdb/query/user.rb

Overview

:nodoc:

Instance Method Summary collapse

Instance Method Details

#create_database_user(database, username, password, options = {}) ⇒ Object

create_database_user(‘testdb’, ‘user’, ‘pass’) - grants all privileges by default create_database_user(‘testdb’, ‘user’, ‘pass’, permissions: :read) - use [:read|:write|:all]



6
7
8
9
10
11
12
# File 'lib/influxdb/query/user.rb', line 6

def create_database_user(database, username, password, options = {})
  permissions = options.fetch(:permissions, :all)
  execute(
    "CREATE user #{username} WITH PASSWORD '#{password}'; "\
    "GRANT #{permissions.to_s.upcase} ON #{database} TO #{username}"
  )
end

#delete_user(username) ⇒ Object



37
38
39
# File 'lib/influxdb/query/user.rb', line 37

def delete_user(username)
  execute("DROP USER #{username}")
end

#grant_user_admin_privileges(username) ⇒ Object

permission => [:all]



19
20
21
# File 'lib/influxdb/query/user.rb', line 19

def grant_user_admin_privileges(username)
  execute("GRANT ALL PRIVILEGES TO #{username}")
end

#grant_user_privileges(username, database, permission) ⇒ Object

permission => [:read|:write|:all]



24
25
26
# File 'lib/influxdb/query/user.rb', line 24

def grant_user_privileges(username, database, permission)
  execute("GRANT #{permission.to_s.upcase} ON #{database} TO #{username}")
end

#list_user_grants(username) ⇒ Object



28
29
30
# File 'lib/influxdb/query/user.rb', line 28

def list_user_grants(username)
  execute("SHOW GRANTS FOR #{username}")
end

#list_usersObject

> [“admin”=>true, “admin”=>false]



42
43
44
45
46
47
48
# File 'lib/influxdb/query/user.rb', line 42

def list_users
  resp = execute("SHOW USERS".freeze, parse: true)
  fetch_series(resp)
    .fetch(0, {})
    .fetch('values'.freeze, [])
    .map { |v| { 'username' => v.first, 'admin' => v.last } }
end

#revoke_user_privileges(username, database, permission) ⇒ Object

permission => [:read|:write|:all]



33
34
35
# File 'lib/influxdb/query/user.rb', line 33

def revoke_user_privileges(username, database, permission)
  execute("REVOKE #{permission.to_s.upcase} ON #{database} FROM #{username}")
end

#update_user_password(username, password) ⇒ Object



14
15
16
# File 'lib/influxdb/query/user.rb', line 14

def update_user_password(username, password)
  execute("SET PASSWORD FOR #{username} = '#{password}'")
end