forest_liana 9.5.4 → 9.5.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3d1c39075bf7b59d268ffd575ef52feb25eb8a67a370f08b4f94a1bca39288ac
|
4
|
+
data.tar.gz: 3c7e36125001dd9ed399239848260652ea6736b18cf9c93a3bf7a4eba7b2497c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f30ea56ebf1e756c17df2398c6746b89165fadda18427b48b3685e5f78276c5994c586f33067c366ddb132245d4a0b0c40e3a562c39a01379319ef8cd7ce84ac
|
7
|
+
data.tar.gz: 57b9e0b67ca52e8f5703cd989a627f53e2eea910ba923a62f14b22482cee38ee9d0b22ac91aa38fe2f5b29a1a0244ac50cdad93f50cbfe113c73515c5c4d0cc8
|
@@ -30,6 +30,7 @@ module ForestLiana
|
|
30
30
|
if field.try(:[], :search)
|
31
31
|
begin
|
32
32
|
@records = field[:search].call(@records, @search)
|
33
|
+
(@fields_searched << field[:field].to_s) if field[:type] == 'String'
|
33
34
|
rescue => exception
|
34
35
|
FOREST_REPORTER.report exception
|
35
36
|
FOREST_LOGGER.error "Cannot search properly on Smart Field:\n" \
|
data/lib/forest_liana/version.rb
CHANGED
@@ -8,7 +8,12 @@ class Forest::User
|
|
8
8
|
"name IS '#{capitalize_name}'"
|
9
9
|
end
|
10
10
|
|
11
|
-
|
11
|
+
search_cap_name = lambda do |query, search|
|
12
|
+
# Injects your new filter into the query.
|
13
|
+
query.or(User.where("name = '#{search}'"))
|
14
|
+
end
|
15
|
+
|
16
|
+
field :cap_name, type: 'String', filter: filter_cap_name, search: search_cap_name do
|
12
17
|
object.name.upcase
|
13
18
|
end
|
14
19
|
|
@@ -154,6 +154,100 @@ describe 'Requesting Tree resources', :type => :request do
|
|
154
154
|
end
|
155
155
|
end
|
156
156
|
|
157
|
+
describe 'Requesting User resources', :type => :request do
|
158
|
+
describe 'index' do
|
159
|
+
before do
|
160
|
+
User.create(name: 'John')
|
161
|
+
|
162
|
+
Rails.cache.write('forest.users', {'1' => { 'id' => 1, 'roleId' => 1, 'rendering_id' => '1' }})
|
163
|
+
Rails.cache.write('forest.has_permission', true)
|
164
|
+
Rails.cache.write(
|
165
|
+
'forest.collections',
|
166
|
+
{
|
167
|
+
'User' => {
|
168
|
+
'browse' => [1],
|
169
|
+
'read' => [1],
|
170
|
+
'edit' => [1],
|
171
|
+
'add' => [1],
|
172
|
+
'delete' => [1],
|
173
|
+
'export' => [1],
|
174
|
+
'actions' => {}
|
175
|
+
}
|
176
|
+
}
|
177
|
+
)
|
178
|
+
|
179
|
+
allow(ForestLiana::IpWhitelist).to receive(:retrieve) { true }
|
180
|
+
allow(ForestLiana::IpWhitelist).to receive(:is_ip_whitelist_retrieved) { true }
|
181
|
+
allow(ForestLiana::IpWhitelist).to receive(:is_ip_valid) { true }
|
182
|
+
allow(ForestLiana::ScopeManager).to receive(:fetch_scopes).and_return(
|
183
|
+
{'scopes' => {}, 'team' => {'id' => '1', 'name' => 'Operations'}}
|
184
|
+
)
|
185
|
+
end
|
186
|
+
|
187
|
+
after do
|
188
|
+
User.destroy_all
|
189
|
+
end
|
190
|
+
|
191
|
+
it 'should respond the user data with meta when search apply on simple column and smart field' do
|
192
|
+
token = JWT.encode({
|
193
|
+
id: 1,
|
194
|
+
email: 'michael.kelso@that70.show',
|
195
|
+
first_name: 'Michael',
|
196
|
+
last_name: 'Kelso',
|
197
|
+
team: 'Operations',
|
198
|
+
rendering_id: 16,
|
199
|
+
exp: Time.now.to_i + 2.weeks.to_i,
|
200
|
+
permission_level: 'admin'
|
201
|
+
}, ForestLiana.auth_secret, 'HS256')
|
202
|
+
|
203
|
+
headers = {
|
204
|
+
'Accept' => 'application/json',
|
205
|
+
'Content-Type' => 'application/json',
|
206
|
+
'Authorization' => "Bearer #{token}"
|
207
|
+
}
|
208
|
+
|
209
|
+
params = {
|
210
|
+
fields: { 'User' => 'id,name,cap_name' },
|
211
|
+
page: { 'number' => '1', 'size' => '10' },
|
212
|
+
searchExtended: '0',
|
213
|
+
search: 'JOHN',
|
214
|
+
sort: '-id',
|
215
|
+
timezone: 'Europe/Paris'
|
216
|
+
}
|
217
|
+
|
218
|
+
allow(ForestAdmin::JSONAPI::Serializer).to receive(:serialize).and_return(
|
219
|
+
{ "data" => [
|
220
|
+
{
|
221
|
+
"type" => "User",
|
222
|
+
"id" => "1",
|
223
|
+
"attributes" => { "id" => 1, "name" => "John", "cap_name" => "JOHN" },
|
224
|
+
"links" => { "self" => "/forest/user/1" }
|
225
|
+
}
|
226
|
+
], "included" => [] }
|
227
|
+
)
|
228
|
+
|
229
|
+
get '/forest/User', params: params, headers: headers
|
230
|
+
|
231
|
+
expect(JSON.parse(response.body)).to include(
|
232
|
+
"data" => [
|
233
|
+
{
|
234
|
+
"type" => "User",
|
235
|
+
"id" => "1",
|
236
|
+
"attributes" => {
|
237
|
+
"id" => 1,
|
238
|
+
"name" => "John",
|
239
|
+
"cap_name" => "JOHN"
|
240
|
+
},
|
241
|
+
"links" => { "self" => "/forest/user/1" },
|
242
|
+
}
|
243
|
+
],
|
244
|
+
"included" => [],
|
245
|
+
"meta" => { 'decorators' => { '0' => { 'id' => "1", 'search' => %w[name cap_name] } } }
|
246
|
+
)
|
247
|
+
end
|
248
|
+
end
|
249
|
+
end
|
250
|
+
|
157
251
|
describe 'Requesting Address resources', :type => :request do
|
158
252
|
let(:scope_filters) { {'scopes' => {}, 'team' => {'id' => '1', 'name' => 'Operations'}} }
|
159
253
|
before do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: forest_liana
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 9.5.
|
4
|
+
version: 9.5.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sandro Munda
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-12-
|
11
|
+
date: 2024-12-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|