Class: ArangoUser
- Inherits:
-
ArangoServer
- Object
- ArangoServer
- ArangoUser
- Defined in:
- lib/ArangoRB_User.rb
Overview
USER ===
Instance Attribute Summary collapse
-
#active ⇒ Object
readonly
Returns the value of attribute active.
-
#extra ⇒ Object
readonly
Returns the value of attribute extra.
-
#idCache ⇒ Object
readonly
Returns the value of attribute idCache.
-
#user ⇒ Object
(also: #name)
readonly
Returns the value of attribute user.
Instance Method Summary collapse
- #[](database) ⇒ Object (also: #database)
-
#create ⇒ Object
TESTED.
-
#databases ⇒ Object
TESTED.
-
#destroy ⇒ Object
TESTED.
-
#grant(database: @@database) ⇒ Object
TESTED.
-
#initialize(user: @@user, password: nil, active: nil, extra: nil) ⇒ ArangoUser
constructor
TESTED.
-
#replace(password:, active: nil, extra: nil) ⇒ Object
TESTED.
-
#retrieve ⇒ Object
TESTED.
- #return_result(result:, caseTrue: false, key: nil) ⇒ Object
-
#revoke(database: @@database) ⇒ Object
TESTED.
- #to_hash ⇒ Object (also: #to_h)
-
#update(password:, active: nil, extra: nil) ⇒ Object
TESTED.
Methods inherited from ArangoServer
address, async, async=, batch, cancelAsync, changePropertyWAL, checkPort, cluster, cluster=, clusterRoundtrip, clusterStatistics, collection, collection=, createDumpBatch, database, database=, databaseVersion, databases, default_server, destroyAllAsync, destroyAsync, destroyCluster, destroyDumpBatch, destroyExpiredAsync, echo, endpoints, execute, executeCluster, executeClusterHead, executeClusterPut, fetchAsync, flushWAL, graph, graph=, log, pendingAsync, prolongDumpBatch, propertyWAL, reload, request, restart, retrieveAsync, retrieveDoneAsync, retrievePendingAsync, return_result, return_result_async, role, server, serverId, shutdown, sleep, statistics, tasks, test, time, transactions, updateCluster, user, user=, username, users, verbose, verbose=, version
Constructor Details
#initialize(user: @@user, password: nil, active: nil, extra: nil) ⇒ ArangoUser
TESTED
4 5 6 7 8 9 10 |
# File 'lib/ArangoRB_User.rb', line 4 def initialize(user: @@user, password: nil, active: nil, extra: nil) # TESTED @password = password @user = user @active = active @extra = extra @idCache = "USER_#{@user}" end |
Instance Attribute Details
#active ⇒ Object (readonly)
Returns the value of attribute active.
12 13 14 |
# File 'lib/ArangoRB_User.rb', line 12 def active @active end |
#extra ⇒ Object (readonly)
Returns the value of attribute extra.
12 13 14 |
# File 'lib/ArangoRB_User.rb', line 12 def extra @extra end |
#idCache ⇒ Object (readonly)
Returns the value of attribute idCache.
12 13 14 |
# File 'lib/ArangoRB_User.rb', line 12 def idCache @idCache end |
#user ⇒ Object (readonly) Also known as: name
Returns the value of attribute user.
12 13 14 |
# File 'lib/ArangoRB_User.rb', line 12 def user @user end |
Instance Method Details
#[](database) ⇒ Object Also known as: database
25 26 27 28 29 30 31 |
# File 'lib/ArangoRB_User.rb', line 25 def [](database) if self.databases[database] == "rw" ArangoDatabase.new database: database else "This User does not have access to Database #{database}." end end |
#create ⇒ Object
TESTED
34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/ArangoRB_User.rb', line 34 def create # TESTED body = { "user" => @user, "passwd" => @password, "active" => @active, "extra" => @extra }.delete_if{|k,v| v.nil?}.to_json request = @@request.merge({ :body => body }) result = self.class.post("/_api/user", request) return_result result: result end |
#databases ⇒ Object
TESTED
67 68 69 70 |
# File 'lib/ArangoRB_User.rb', line 67 def databases # TESTED result = self.class.get("/_api/user/#{@user}/database/", @@request) return_result result: result, key: "result" end |
#destroy ⇒ Object
TESTED
126 127 128 129 |
# File 'lib/ArangoRB_User.rb', line 126 def destroy # TESTED result = self.class.delete("/_api/user/#{@user}", @@request) return_result result: result, caseTrue: true end |
#grant(database: @@database) ⇒ Object
TESTED
51 52 53 54 55 56 57 |
# File 'lib/ArangoRB_User.rb', line 51 def grant(database: @@database) # TESTED database = database.database if database.is_a?(ArangoDatabase) body = { "grant" => "rw" }.to_json request = @@request.merge({ :body => body }) result = self.class.put("/_api/user/#{@user}/database/#{database}", request) return_result result: result, caseTrue: true end |
#replace(password:, active: nil, extra: nil) ⇒ Object
TESTED
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/ArangoRB_User.rb', line 72 def replace(password:, active: nil, extra: nil) # TESTED body = { "passwd" => password, "active" => active, "extra" => extra }.delete_if{|k,v| v.nil?}.to_json request = @@request.merge({ :body => body }) result = self.class.put("/_api/user/#{@user}", request) return result.headers["x-arango-async-id"] if @@async == "store" return true if @@async result = result.parsed_response if @@verbose unless result["error"] @password = password @active = active.nil? || active @extra = extra end result else return result["errorMessage"] if result["error"] @password = password @active = active.nil? || active @extra = extra self end end |
#retrieve ⇒ Object
TESTED
46 47 48 49 |
# File 'lib/ArangoRB_User.rb', line 46 def retrieve # TESTED result = self.class.get("/_api/user/#{@user}", @@request) return_result result: result end |
#return_result(result:, caseTrue: false, key: nil) ⇒ Object
131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 |
# File 'lib/ArangoRB_User.rb', line 131 def return_result(result:, caseTrue: false, key: nil) return result.headers["x-arango-async-id"] if @@async == "store" return true if @@async result = result.parsed_response if @@verbose || !result.is_a?(Hash) unless result["error"] @active = result["active"] @extra = result["extra"] end result else return result["errorMessage"] if result["error"] @active = result["active"] @extra = result["extra"] return true if caseTrue key.nil? ? self : result[key] end end |
#revoke(database: @@database) ⇒ Object
TESTED
59 60 61 62 63 64 65 |
# File 'lib/ArangoRB_User.rb', line 59 def revoke(database: @@database) # TESTED database = database.database if database.is_a?(ArangoDatabase) body = { "grant" => "none" }.to_json request = @@request.merge({ :body => body }) result = self.class.put("/_api/user/#{@user}/database/#{database}", request) return_result result: result, caseTrue: true end |
#to_hash ⇒ Object Also known as: to_h
15 16 17 18 19 20 21 22 |
# File 'lib/ArangoRB_User.rb', line 15 def to_hash { "user" => @user, "active" => @active, "extra" => @extra, "idCache" => @idCache }.delete_if{|k,v| v.nil?} end |
#update(password:, active: nil, extra: nil) ⇒ Object
TESTED
99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
# File 'lib/ArangoRB_User.rb', line 99 def update(password: , active: nil, extra: nil) # TESTED body = { "passwd" => password, "active" => active, "extra" => extra }.delete_if{|k,v| v.nil?}.to_json request = @@request.merge({ :body => body }) result = self.class.patch("/_api/user/#{@user}", request) return result.headers["x-arango-async-id"] if @@async == "store" return true if @@async result = result.parsed_response if @@verbose unless result["error"] @password = password @active = active.nil? || active @extra = extra end result else return result["errorMessage"] if result["error"] @password = password @active = active.nil? || active @extra = extra self end end |