Class: Arango::User
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
-
#[](database) ⇒ Object
(also: #database)
-
#addCollectionAccess(grant:, database:, collection:) ⇒ Object
-
#addDatabaseAccess(grant:, database:) ⇒ Object
ACCESS ==.
-
#collectionAccess(database:, collection:) ⇒ Object
-
#create(password: @password, active: @active, extra: @extra) ⇒ Object
USER ACTION ==.
-
#databaseAccess(database:) ⇒ Object
-
#destroy ⇒ Object
-
#grant(database:) ⇒ Object
-
#initialize(server:, password: "", name:, extra: {}, active: nil, cache_name: nil) ⇒ User
constructor
-
#listAccess(full: nil) ⇒ Object
(also: #databases)
-
#replace(password: @password, active: @active, extra: @extra) ⇒ Object
-
#retrieve ⇒ Object
-
#revokeCollectionAccess(database:, collection:) ⇒ Object
-
#revokeDatabaseAccess(database:) ⇒ Object
(also: #revoke)
-
#to_h ⇒ Object
TO HASH ===.
-
#update(password: @password, active: @active, extra: @extra) ⇒ Object
#server=
#return_delete, #return_directly?, #return_element
#satisfy_category?, #satisfy_class?, #warning_deprecated
Constructor Details
#initialize(server:, password: "", name:, extra: {}, active: nil, cache_name: nil) ⇒ User
Returns a new instance of User.
29
30
31
32
33
34
35
36
37
38
39
|
# File 'lib/User.rb', line 29
def initialize(server:, password: "", name:, extra: {}, active: nil, cache_name: nil)
assign_server(server)
unless cache_name.nil?
@cache_name = cache_name
@server.cache.save(:user, cache_name, self)
end
@password = password
@name = name
@extra =
@active = active
end
|
Instance Attribute Details
#active ⇒ Object
43
44
45
|
# File 'lib/User.rb', line 43
def active
@active
end
|
#body ⇒ Object
Returns the value of attribute body.
44
45
46
|
# File 'lib/User.rb', line 44
def body
@body
end
|
#cache_name ⇒ Object
Returns the value of attribute cache_name.
44
45
46
|
# File 'lib/User.rb', line 44
def cache_name
@cache_name
end
|
43
44
45
|
# File 'lib/User.rb', line 43
def
@extra
end
|
#name ⇒ Object
Also known as:
user
43
44
45
|
# File 'lib/User.rb', line 43
def name
@name
end
|
#password=(value) ⇒ Object
Sets the attribute password
45
46
47
|
# File 'lib/User.rb', line 45
def password=(value)
@password = value
end
|
#server ⇒ Object
Returns the value of attribute server.
44
45
46
|
# File 'lib/User.rb', line 44
def server
@server
end
|
Class Method Details
.new(*args) ⇒ Object
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'lib/User.rb', line 9
def self.new(*args)
hash = args[0]
super unless hash.is_a?(Hash)
database = hash[:database]
if database.is_a?(Arango::Database) && database.server.active_cache
cache_name = hash[:name]
cached = database.server.cache.cache.dig(:user, cache_name)
if cached.nil?
hash[:cache_name] = cache_name
return super
else
body = {}
[:password, :extra, :active].each{|k| body[k] ||= hash[k]}
cached.assign_attributes(body)
return cached
end
end
super
end
|
Instance Method Details
#[](database) ⇒ Object
Also known as:
database
74
75
76
77
78
79
80
|
# File 'lib/User.rb', line 74
def [](database)
if self.databases[database.to_sym] == "rw"
Arango::Database.new name: database, server: @server
else
"This User does not have access to Database #{database}."
end
end
|
#addCollectionAccess(grant:, database:, collection:) ⇒ Object
144
145
146
147
148
149
150
151
152
153
154
|
# File 'lib/User.rb', line 144
def addCollectionAccess(grant:, database:, collection:)
satisfy_category?(grant, ["rw", "ro", "none"])
satisfy_class?(database, [Arango::Database, String])
satisfy_class?(collection, [Arango::Collection, String])
database = database.name if database.is_a?(Arango::Database)
collection = collection.name if collection.is_a?(Arango::Collection)
body = {"grant": grant}
result = @server.request("PUT", "_api/user/#{@name}/database/#{database}/#{collection}",
body: body)
return return_directly?(result) ? result : result[:"#{database}/#{collection}"]
end
|
#addDatabaseAccess(grant:, database:) ⇒ Object
130
131
132
133
134
135
136
137
138
|
# File 'lib/User.rb', line 130
def addDatabaseAccess(grant:, database:)
satisfy_category?(grant, ["rw", "ro", "none"])
satisfy_class?(database, [Arango::Database, String])
database = database.name if database.is_a?(Arango::Database)
body = {"grant": grant}
result = @server.request("PUT", "_api/user/#{@name}/database/#{database}",
body: body)
return return_directly?(result) ? result : result[database.to_sym]
end
|
#collectionAccess(database:, collection:) ⇒ Object
187
188
189
190
191
192
193
194
195
|
# File 'lib/User.rb', line 187
def collectionAccess(database:, collection:)
satisfy_class?(database, [Arango::Database, String])
satisfy_class?(collection, [Arango::Collection, String])
database = database.name if database.is_a?(Arango::Database)
collection = collection.name if collection.is_a?(Arango::Collection)
result = @server.request("GET", "_api/user/#{@name}/database/#{database}/#{collection}",
body: body)
return return_directly?(result) ? result : result[:result]
end
|
#create(password: @password, active: @active, extra: @extra) ⇒ Object
85
86
87
88
89
90
91
92
93
94
|
# File 'lib/User.rb', line 85
def create(password: @password, active: @active, extra: @extra)
body = {
"user": @name,
"passwd": password,
"extra": ,
"active": active
}
result = @server.request("POST", "_api/user", body: body)
return_element(result)
end
|
#databaseAccess(database:) ⇒ Object
180
181
182
183
184
185
|
# File 'lib/User.rb', line 180
def databaseAccess(database:)
satisfy_class?(database, [Arango::Database, String])
database = database.name if database.is_a?(Arango::Database)
result = @server.request("GET", "_api/user/#{@name}/database/#{database}")
return return_directly?(result) ? result : result[:result]
end
|
#destroy ⇒ Object
123
124
125
126
|
# File 'lib/User.rb', line 123
def destroy
result = @server.request("DELETE", "_api/user/#{@name}")
return return_directly?(result) ? result : true
end
|
#grant(database:) ⇒ Object
140
141
142
|
# File 'lib/User.rb', line 140
def grant(database:)
addDatabaseAccess(grant: "rw", database: database)
end
|
#listAccess(full: nil) ⇒ Object
Also known as:
databases
173
174
175
176
177
|
# File 'lib/User.rb', line 173
def listAccess(full: nil)
query = {"full": full}
result = @server.request("GET", "_api/user/#{@name}/database", query: query)
return return_directly?(result) ? result : result[:result]
end
|
#replace(password: @password, active: @active, extra: @extra) ⇒ Object
101
102
103
104
105
106
107
108
109
110
|
# File 'lib/User.rb', line 101
def replace(password: @password, active: @active, extra: @extra)
body = {
"passwd": password,
"active": active,
"extra":
}
result = @server.request("PUT", "_api/user/#{@name}", body: body)
@password = password
return_element(result)
end
|
#retrieve ⇒ Object
96
97
98
99
|
# File 'lib/User.rb', line 96
def retrieve
result = @server.request("GET", "_api/user/#{@name}", body: body)
return_element(result)
end
|
#revokeCollectionAccess(database:, collection:) ⇒ Object
164
165
166
167
168
169
170
171
|
# File 'lib/User.rb', line 164
def revokeCollectionAccess(database:, collection:)
satisfy_class?(database, [Arango::Database, String])
satisfy_class?(collection, [Arango::Collection, String])
database = database.name if database.is_a?(Arango::Database)
collection = collection.name if collection.is_a?(Arango::Collection)
result = @server.request("DELETE", "_api/user/#{@name}/database/#{database}/#{collection}")
return return_directly?(result) ? result : true
end
|
#revokeDatabaseAccess(database:) ⇒ Object
Also known as:
revoke
156
157
158
159
160
161
|
# File 'lib/User.rb', line 156
def revokeDatabaseAccess(database:)
satisfy_class?(database, [Arango::Database, String])
database = database.name if database.is_a?(Arango::Database)
result = @server.request("DELETE", "_api/user/#{@name}/database/#{database}")
return return_directly?(result) ? result : true
end
|
#to_h ⇒ Object
64
65
66
67
68
69
70
71
72
|
# File 'lib/User.rb', line 64
def to_h
{
"user": @name,
"extra": @extra,
"active": @active,
"cache_name": @cache_name,
"server": @server.base_uri
}.delete_if{|k,v| v.nil?}
end
|
#update(password: @password, active: @active, extra: @extra) ⇒ Object
112
113
114
115
116
117
118
119
120
121
|
# File 'lib/User.rb', line 112
def update(password: @password, active: @active, extra: @extra)
body = {
"passwd": password,
"active": active,
"extra":
}
result = @server.request("PATCH", "_api/user/#{@name}", body: body)
@password = password
return_element(result)
end
|