eco-helpers 2.0.13 → 2.0.18
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 +4 -4
- data/CHANGELOG.md +87 -2
- data/eco-helpers.gemspec +6 -4
- data/lib/eco-helpers.rb +2 -0
- data/lib/eco/api/common/base_loader.rb +14 -0
- data/lib/eco/api/common/people/default_parsers/date_parser.rb +11 -1
- data/lib/eco/api/common/people/default_parsers/login_providers_parser.rb +1 -1
- data/lib/eco/api/common/people/default_parsers/policy_groups_parser.rb +11 -11
- data/lib/eco/api/common/people/person_entry.rb +9 -2
- data/lib/eco/api/common/people/supervisor_helpers.rb +27 -0
- data/lib/eco/api/common/session/file_manager.rb +2 -2
- data/lib/eco/api/common/session/mailer.rb +0 -1
- data/lib/eco/api/common/session/s3_uploader.rb +0 -1
- data/lib/eco/api/common/session/sftp.rb +0 -1
- data/lib/eco/api/common/version_patches/exception.rb +8 -4
- data/lib/eco/api/error.rb +5 -3
- data/lib/eco/api/microcases.rb +3 -1
- data/lib/eco/api/microcases/append_usergroups.rb +0 -1
- data/lib/eco/api/microcases/people_cache.rb +2 -2
- data/lib/eco/api/microcases/people_load.rb +2 -2
- data/lib/eco/api/microcases/people_refresh.rb +2 -2
- data/lib/eco/api/microcases/people_search.rb +6 -6
- data/lib/eco/api/microcases/preserve_default_tag.rb +23 -0
- data/lib/eco/api/microcases/preserve_filter_tags.rb +28 -0
- data/lib/eco/api/microcases/preserve_policy_groups.rb +30 -0
- data/lib/eco/api/microcases/set_account.rb +0 -1
- data/lib/eco/api/organization.rb +1 -0
- data/lib/eco/api/organization/people.rb +7 -0
- data/lib/eco/api/organization/people_analytics.rb +60 -0
- data/lib/eco/api/organization/presets_factory.rb +116 -93
- data/lib/eco/api/organization/presets_integrity.json +58 -0
- data/lib/eco/api/organization/presets_values.json +5 -4
- data/lib/eco/api/policies/default_policies/99_user_access_policy.rb +0 -30
- data/lib/eco/api/session.rb +1 -20
- data/lib/eco/api/session/batch.rb +23 -7
- data/lib/eco/api/session/batch/job.rb +3 -0
- data/lib/eco/api/session/config.rb +16 -15
- data/lib/eco/api/session/config/api.rb +4 -0
- data/lib/eco/api/session/config/apis.rb +80 -0
- data/lib/eco/api/session/config/files.rb +7 -0
- data/lib/eco/api/session/config/people.rb +3 -19
- data/lib/eco/api/usecases/default_cases.rb +4 -1
- data/lib/eco/api/usecases/default_cases/abstract_policygroup_abilities_case.rb +161 -0
- data/lib/eco/api/usecases/default_cases/analyse_people_case.rb +76 -0
- data/lib/eco/api/usecases/default_cases/codes_to_tags_case.rb +2 -3
- data/lib/eco/api/usecases/default_cases/reset_landing_page_case.rb +11 -1
- data/lib/eco/api/usecases/default_cases/restore_db_case.rb +1 -2
- data/lib/eco/api/usecases/default_cases/supers_cyclic_identify_case.rb +72 -0
- data/lib/eco/api/usecases/default_cases/supers_hierarchy_case.rb +59 -0
- data/lib/eco/api/usecases/default_cases/to_csv_case.rb +104 -26
- data/lib/eco/api/usecases/default_cases/to_csv_detailed_case.rb +62 -36
- data/lib/eco/cli.rb +0 -10
- data/lib/eco/cli/config/default/options.rb +19 -17
- data/lib/eco/cli/config/default/people_filters.rb +3 -3
- data/lib/eco/cli/config/default/usecases.rb +77 -25
- data/lib/eco/cli/config/default/workflow.rb +12 -3
- data/lib/eco/cli/config/help.rb +1 -0
- data/lib/eco/cli/config/options_set.rb +106 -13
- data/lib/eco/cli/config/use_cases.rb +33 -33
- data/lib/eco/cli/scripting/args_helpers.rb +30 -3
- data/lib/eco/data.rb +1 -0
- data/lib/eco/data/crypto/encryption.rb +3 -3
- data/lib/eco/data/files/directory.rb +28 -20
- data/lib/eco/data/files/helpers.rb +6 -4
- data/lib/eco/data/fuzzy_match.rb +119 -0
- data/lib/eco/data/fuzzy_match/array_helpers.rb +75 -0
- data/lib/eco/data/fuzzy_match/chars_position_score.rb +37 -0
- data/lib/eco/data/fuzzy_match/ngrams_score.rb +73 -0
- data/lib/eco/data/fuzzy_match/pairing.rb +102 -0
- data/lib/eco/data/fuzzy_match/result.rb +67 -0
- data/lib/eco/data/fuzzy_match/results.rb +53 -0
- data/lib/eco/data/fuzzy_match/score.rb +44 -0
- data/lib/eco/data/fuzzy_match/stop_words.rb +35 -0
- data/lib/eco/data/fuzzy_match/string_helpers.rb +69 -0
- data/lib/eco/version.rb +1 -1
- metadata +86 -10
- data/lib/eco/api/microcases/refresh_abilities.rb +0 -19
- data/lib/eco/api/organization/presets_reference.json +0 -59
- data/lib/eco/api/usecases/default_cases/refresh_abilities_case.rb +0 -30
@@ -0,0 +1,53 @@
|
|
1
|
+
module Eco
|
2
|
+
module Data
|
3
|
+
module FuzzyMatch
|
4
|
+
class Results < Struct.new(:needle, :value, :raw_results)
|
5
|
+
|
6
|
+
def results_with_false_positives
|
7
|
+
relevant_results(methods: :jaro_winkler, threshold: 0.5)
|
8
|
+
end
|
9
|
+
|
10
|
+
def relevant_results(methods: order, threshold: 0.5)
|
11
|
+
raw_results.select do |result|
|
12
|
+
result.all_threshold?(methods, threshold)
|
13
|
+
end.yield_self do |filtered|
|
14
|
+
self.class.new(needle, value, filtered).tap do |results|
|
15
|
+
results.order = methods
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def order=(values)
|
21
|
+
@order = [values].flatten.compact
|
22
|
+
raw_results.each {|r| r.order = @order}
|
23
|
+
end
|
24
|
+
|
25
|
+
def order
|
26
|
+
@order ||= [:words_ngrams, :dice]
|
27
|
+
end
|
28
|
+
|
29
|
+
def results
|
30
|
+
raw_results.sort
|
31
|
+
end
|
32
|
+
|
33
|
+
def print
|
34
|
+
msg = results.map do |result|
|
35
|
+
result.print
|
36
|
+
end.join("\n ")
|
37
|
+
|
38
|
+
puts "'#{value}':\n " + msg
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def item_string(item, attr = self.method)
|
44
|
+
return item if !item || item.is_a?(String) || !attr
|
45
|
+
attr = attr.to_sym
|
46
|
+
return item.send(attr) if item.respond_to?(attr)
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module Eco
|
2
|
+
module Data
|
3
|
+
module FuzzyMatch
|
4
|
+
class Score < Struct.new(:score, :total)
|
5
|
+
|
6
|
+
def ratio(decimals = 6)
|
7
|
+
((score || 0).to_f / (total || 1)).round(decimals)
|
8
|
+
end
|
9
|
+
|
10
|
+
def percent(decimals = 3)
|
11
|
+
(100 * ratio).round(decimals)
|
12
|
+
end
|
13
|
+
|
14
|
+
def increase(value = 1)
|
15
|
+
self.score += value
|
16
|
+
end
|
17
|
+
|
18
|
+
def increase_total(value)
|
19
|
+
self.total += value
|
20
|
+
end
|
21
|
+
|
22
|
+
def values_at(*keys)
|
23
|
+
keys.map do |key|
|
24
|
+
self.send(key) if self.respond_to?(key)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
# Merges 2 Score instance objects
|
29
|
+
def merge(value)
|
30
|
+
Score.new(*values_at(:score, :total)).merge!(value)
|
31
|
+
end
|
32
|
+
|
33
|
+
def merge!(value)
|
34
|
+
raise "Expecting Score object. Given: #{value.class}" unless value.is_a?(Score)
|
35
|
+
increase(value.score)
|
36
|
+
increase_total(value.total)
|
37
|
+
self
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module Eco
|
2
|
+
module Data
|
3
|
+
module FuzzyMatch
|
4
|
+
module StopWords
|
5
|
+
PREPOSITIONS = [
|
6
|
+
"aboard", "about", "above", "across", "after", "against", "along", "amid", "among", "around", "as", "at",
|
7
|
+
"before", "behind", "below", "beneath", "beside", "between", "beyond", "but", "by",
|
8
|
+
"concerning", "considering", "despite", "down", "during", "except", "following", "for", "from",
|
9
|
+
"in", "inside", "into", "like", "minus", "near", "next",
|
10
|
+
"of", "off", "on", "onto", "opposite", "out", "outside", "over", "past", "per", "plus",
|
11
|
+
"regarding", "round", "save", "since", "than", "through", "till", "to", "toward",
|
12
|
+
"under", "underneath", "unlike", "until", "up", "upon", "versus", "via",
|
13
|
+
"with", "within", "without"
|
14
|
+
]
|
15
|
+
PRONOUNS = [
|
16
|
+
"all", "another", "any", "anybody", "anyone", "anything", "as", "aught",
|
17
|
+
"both", "each", "each other", "either", "enough", "everybody", "everyone", "everything",
|
18
|
+
"few", "he", "her", "hers", "herself", "him", "himself", "his", "I", "idem", "it", "its", "itself",
|
19
|
+
"many", "me", "mine", "most", "my", "myself", "naught", "neither", "no one", "nobody", "none", "nothing", "nought",
|
20
|
+
"one", "one another", "other", "others", "ought", "our", "ours", "ourself", "ourselves",
|
21
|
+
"several", "she", "some", "somebody", "someone", "something", "somewhat", "such", "suchlike",
|
22
|
+
"that", "thee", "their", "theirs", "theirself", "theirselves", "them", "themself", "themselves", "there",
|
23
|
+
"these", "they", "thine", "this", "those", "thou", "thy", "thyself", "us",
|
24
|
+
"we", "what", "whatever", "whatnot", "whatsoever", "whence", "where", "whereby", "wherefrom",
|
25
|
+
"wherein", "whereinto", "whereof", "whereon", "wherever", "wheresoever", "whereto", "whereunto",
|
26
|
+
"wherewith", "wherewithal", "whether", "which", "whichever", "whichsoever", "who", "whoever", "whom",
|
27
|
+
"whomever", "whomso", "whomsoever", "whose", "whosever", "whosesoever", "whoso", "whosoever",
|
28
|
+
"ye", "yon", "yonder", "you", "your", "yours", "yourself", "yourselves"
|
29
|
+
]
|
30
|
+
ARTICLES = ["a", "an", "the"]
|
31
|
+
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
module Eco
|
2
|
+
module Data
|
3
|
+
module FuzzyMatch
|
4
|
+
module StringHelpers
|
5
|
+
# Downcases and trims
|
6
|
+
def normalize_string(value)
|
7
|
+
case value
|
8
|
+
when Array
|
9
|
+
value.map {|val| normalize_string(val)}
|
10
|
+
when Symbol
|
11
|
+
normalize_string(value.to_sym)
|
12
|
+
when String
|
13
|
+
value.downcase.strip
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def get_words(str, normalized: false)
|
18
|
+
return [] unless str
|
19
|
+
str = normalize_string(str) unless normalized
|
20
|
+
str.scan(/[a-zA-Z'-]+/)
|
21
|
+
end
|
22
|
+
|
23
|
+
# Keeps the start order of the `words` and consecutive `words` together/consecutive.
|
24
|
+
# @param str [String] the input string with the words.
|
25
|
+
# @param range [Integer, Range] determine the lenght of the generated values.
|
26
|
+
# @return [Array<String>] combinations of `range` length of `words`.
|
27
|
+
def string_ngrams(str, range=2..3, normalized: false)
|
28
|
+
ngrams(get_words(str, normalized: normalized), range)
|
29
|
+
end
|
30
|
+
|
31
|
+
# Keeps the start order of the `words` of the input `Array` `words`.
|
32
|
+
# It does **not** keep consecutive `words` together (it can jump/skip items).
|
33
|
+
# @param str [String] the input string with the words.
|
34
|
+
# @param range [Integer, Range] determine the lenght of the generated values.
|
35
|
+
# @return [Array<String>] combinations of `range` length of `words`
|
36
|
+
def string_combinations(str, range=2..3, normalized: false)
|
37
|
+
combinations(get_words(str, normalized: normalized), range)
|
38
|
+
.map {|comb| comb.join(' ')}
|
39
|
+
end
|
40
|
+
|
41
|
+
# It includes `combinations` that break the initial order of the `Array`.
|
42
|
+
# It does **not** keep consecutive `words` together (it can jump/skip items).
|
43
|
+
# @param str [String] the input string with the words.
|
44
|
+
# @param range [Integer, Range] determine the lenght of the generated values.
|
45
|
+
# @return [Array<String>] permutations of `range` length of `words`
|
46
|
+
def string_permutations(str, range=2..3, normalized: false)
|
47
|
+
permutations(get_words(str, normalized: normalized), range)
|
48
|
+
.map {|comb| comb.join(' ')}
|
49
|
+
end
|
50
|
+
|
51
|
+
# Keeps the start order of the `charts` and consecutive `charts` together/consecutive.
|
52
|
+
# @param str [String] the input `word` string.
|
53
|
+
# @param range [Integer, Range] determine the lenght of the generated values.
|
54
|
+
# @return [Array<String>] combinations of `range` length of `words`.
|
55
|
+
def word_ngrams(str, range=2..3, normalized: false)
|
56
|
+
str = normalize_string(str) unless normalized
|
57
|
+
ngrams(str.to_s.chars, range)
|
58
|
+
.map {|comb| no_blanks(comb)}
|
59
|
+
end
|
60
|
+
|
61
|
+
def no_blanks(str)
|
62
|
+
return nil unless str && str.is_a?(String)
|
63
|
+
str.tr(' ', '')
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
data/lib/eco/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eco-helpers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.18
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Oscar Segura
|
@@ -16,7 +16,7 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 2.2.
|
19
|
+
version: 2.2.17
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
22
|
version: '2.3'
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 2.2.
|
29
|
+
version: 2.2.17
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '2.3'
|
@@ -116,7 +116,7 @@ dependencies:
|
|
116
116
|
requirements:
|
117
117
|
- - ">="
|
118
118
|
- !ruby/object:Gem::Version
|
119
|
-
version: 0.8.
|
119
|
+
version: 0.8.3
|
120
120
|
- - "<"
|
121
121
|
- !ruby/object:Gem::Version
|
122
122
|
version: '0.9'
|
@@ -126,7 +126,7 @@ dependencies:
|
|
126
126
|
requirements:
|
127
127
|
- - ">="
|
128
128
|
- !ruby/object:Gem::Version
|
129
|
-
version: 0.8.
|
129
|
+
version: 0.8.3
|
130
130
|
- - "<"
|
131
131
|
- !ruby/object:Gem::Version
|
132
132
|
version: '0.9'
|
@@ -136,7 +136,7 @@ dependencies:
|
|
136
136
|
requirements:
|
137
137
|
- - ">="
|
138
138
|
- !ruby/object:Gem::Version
|
139
|
-
version: 0.8.
|
139
|
+
version: 0.8.7
|
140
140
|
- - "<"
|
141
141
|
- !ruby/object:Gem::Version
|
142
142
|
version: '0.9'
|
@@ -146,7 +146,7 @@ dependencies:
|
|
146
146
|
requirements:
|
147
147
|
- - ">="
|
148
148
|
- !ruby/object:Gem::Version
|
149
|
-
version: 0.8.
|
149
|
+
version: 0.8.7
|
150
150
|
- - "<"
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '0.9'
|
@@ -230,6 +230,66 @@ dependencies:
|
|
230
230
|
- - "<"
|
231
231
|
- !ruby/object:Gem::Version
|
232
232
|
version: '3.1'
|
233
|
+
- !ruby/object:Gem::Dependency
|
234
|
+
name: fuzzy_match
|
235
|
+
requirement: !ruby/object:Gem::Requirement
|
236
|
+
requirements:
|
237
|
+
- - ">="
|
238
|
+
- !ruby/object:Gem::Version
|
239
|
+
version: 2.1.0
|
240
|
+
- - "<"
|
241
|
+
- !ruby/object:Gem::Version
|
242
|
+
version: '2.2'
|
243
|
+
type: :runtime
|
244
|
+
prerelease: false
|
245
|
+
version_requirements: !ruby/object:Gem::Requirement
|
246
|
+
requirements:
|
247
|
+
- - ">="
|
248
|
+
- !ruby/object:Gem::Version
|
249
|
+
version: 2.1.0
|
250
|
+
- - "<"
|
251
|
+
- !ruby/object:Gem::Version
|
252
|
+
version: '2.2'
|
253
|
+
- !ruby/object:Gem::Dependency
|
254
|
+
name: amatch
|
255
|
+
requirement: !ruby/object:Gem::Requirement
|
256
|
+
requirements:
|
257
|
+
- - ">="
|
258
|
+
- !ruby/object:Gem::Version
|
259
|
+
version: 0.4.0
|
260
|
+
- - "<"
|
261
|
+
- !ruby/object:Gem::Version
|
262
|
+
version: '0.5'
|
263
|
+
type: :runtime
|
264
|
+
prerelease: false
|
265
|
+
version_requirements: !ruby/object:Gem::Requirement
|
266
|
+
requirements:
|
267
|
+
- - ">="
|
268
|
+
- !ruby/object:Gem::Version
|
269
|
+
version: 0.4.0
|
270
|
+
- - "<"
|
271
|
+
- !ruby/object:Gem::Version
|
272
|
+
version: '0.5'
|
273
|
+
- !ruby/object:Gem::Dependency
|
274
|
+
name: jaro_winkler
|
275
|
+
requirement: !ruby/object:Gem::Requirement
|
276
|
+
requirements:
|
277
|
+
- - ">="
|
278
|
+
- !ruby/object:Gem::Version
|
279
|
+
version: 1.5.4
|
280
|
+
- - "<"
|
281
|
+
- !ruby/object:Gem::Version
|
282
|
+
version: '1.6'
|
283
|
+
type: :runtime
|
284
|
+
prerelease: false
|
285
|
+
version_requirements: !ruby/object:Gem::Requirement
|
286
|
+
requirements:
|
287
|
+
- - ">="
|
288
|
+
- !ruby/object:Gem::Version
|
289
|
+
version: 1.5.4
|
290
|
+
- - "<"
|
291
|
+
- !ruby/object:Gem::Version
|
292
|
+
version: '1.6'
|
233
293
|
description:
|
234
294
|
email:
|
235
295
|
- oscar@ecoportal.co.nz
|
@@ -318,7 +378,9 @@ files:
|
|
318
378
|
- lib/eco/api/microcases/people_load.rb
|
319
379
|
- lib/eco/api/microcases/people_refresh.rb
|
320
380
|
- lib/eco/api/microcases/people_search.rb
|
321
|
-
- lib/eco/api/microcases/
|
381
|
+
- lib/eco/api/microcases/preserve_default_tag.rb
|
382
|
+
- lib/eco/api/microcases/preserve_filter_tags.rb
|
383
|
+
- lib/eco/api/microcases/preserve_policy_groups.rb
|
322
384
|
- lib/eco/api/microcases/refresh_default_tag.rb
|
323
385
|
- lib/eco/api/microcases/s3upload_targets.rb
|
324
386
|
- lib/eco/api/microcases/set_account.rb
|
@@ -335,12 +397,13 @@ files:
|
|
335
397
|
- lib/eco/api/organization.rb
|
336
398
|
- lib/eco/api/organization/login_providers.rb
|
337
399
|
- lib/eco/api/organization/people.rb
|
400
|
+
- lib/eco/api/organization/people_analytics.rb
|
338
401
|
- lib/eco/api/organization/person_schemas.rb
|
339
402
|
- lib/eco/api/organization/policy_groups.rb
|
340
403
|
- lib/eco/api/organization/preferences.rb
|
341
404
|
- lib/eco/api/organization/preferences_reference.json
|
342
405
|
- lib/eco/api/organization/presets_factory.rb
|
343
|
-
- lib/eco/api/organization/
|
406
|
+
- lib/eco/api/organization/presets_integrity.json
|
344
407
|
- lib/eco/api/organization/presets_values.json
|
345
408
|
- lib/eco/api/organization/tag_tree.rb
|
346
409
|
- lib/eco/api/policies.rb
|
@@ -374,6 +437,8 @@ files:
|
|
374
437
|
- lib/eco/api/usecases/base_case.rb
|
375
438
|
- lib/eco/api/usecases/base_io.rb
|
376
439
|
- lib/eco/api/usecases/default_cases.rb
|
440
|
+
- lib/eco/api/usecases/default_cases/abstract_policygroup_abilities_case.rb
|
441
|
+
- lib/eco/api/usecases/default_cases/analyse_people_case.rb
|
377
442
|
- lib/eco/api/usecases/default_cases/append_usergroups_case.rb
|
378
443
|
- lib/eco/api/usecases/default_cases/change_email_case.rb
|
379
444
|
- lib/eco/api/usecases/default_cases/codes_to_tags_case.rb
|
@@ -388,7 +453,6 @@ files:
|
|
388
453
|
- lib/eco/api/usecases/default_cases/new_id_case.rb
|
389
454
|
- lib/eco/api/usecases/default_cases/new_id_case0.rb
|
390
455
|
- lib/eco/api/usecases/default_cases/org_data_convert_case.rb
|
391
|
-
- lib/eco/api/usecases/default_cases/refresh_abilities_case.rb
|
392
456
|
- lib/eco/api/usecases/default_cases/refresh_case.rb
|
393
457
|
- lib/eco/api/usecases/default_cases/reinvite_sync_case.rb
|
394
458
|
- lib/eco/api/usecases/default_cases/reinvite_trans_case.rb
|
@@ -398,6 +462,8 @@ files:
|
|
398
462
|
- lib/eco/api/usecases/default_cases/restore_db_case.rb
|
399
463
|
- lib/eco/api/usecases/default_cases/set_default_tag_case.rb
|
400
464
|
- lib/eco/api/usecases/default_cases/set_supervisor_case.rb
|
465
|
+
- lib/eco/api/usecases/default_cases/supers_cyclic_identify_case.rb
|
466
|
+
- lib/eco/api/usecases/default_cases/supers_hierarchy_case.rb
|
401
467
|
- lib/eco/api/usecases/default_cases/switch_supervisor_case.rb
|
402
468
|
- lib/eco/api/usecases/default_cases/to_csv_case.rb
|
403
469
|
- lib/eco/api/usecases/default_cases/to_csv_detailed_case.rb
|
@@ -443,6 +509,16 @@ files:
|
|
443
509
|
- lib/eco/data/files/directory.rb
|
444
510
|
- lib/eco/data/files/file_pattern.rb
|
445
511
|
- lib/eco/data/files/helpers.rb
|
512
|
+
- lib/eco/data/fuzzy_match.rb
|
513
|
+
- lib/eco/data/fuzzy_match/array_helpers.rb
|
514
|
+
- lib/eco/data/fuzzy_match/chars_position_score.rb
|
515
|
+
- lib/eco/data/fuzzy_match/ngrams_score.rb
|
516
|
+
- lib/eco/data/fuzzy_match/pairing.rb
|
517
|
+
- lib/eco/data/fuzzy_match/result.rb
|
518
|
+
- lib/eco/data/fuzzy_match/results.rb
|
519
|
+
- lib/eco/data/fuzzy_match/score.rb
|
520
|
+
- lib/eco/data/fuzzy_match/stop_words.rb
|
521
|
+
- lib/eco/data/fuzzy_match/string_helpers.rb
|
446
522
|
- lib/eco/data/mapper.rb
|
447
523
|
- lib/eco/language.rb
|
448
524
|
- lib/eco/language/curry.rb
|
@@ -1,19 +0,0 @@
|
|
1
|
-
module Eco
|
2
|
-
module API
|
3
|
-
class MicroCases
|
4
|
-
# It sets the correct set of abilities based on the usergroups of `person`.
|
5
|
-
# @param person [Ecoportal::API::V1::Person] the person we want to update, carrying the changes to be done.
|
6
|
-
# @param options [Hash] the options.
|
7
|
-
def refresh_abilities(person, options)
|
8
|
-
unless options.dig(:exclude, :account)
|
9
|
-
if person.account
|
10
|
-
unless options.dig(:exclude, :abilities) && !person.new?
|
11
|
-
person.account.permissions_custom = session.new_preset(person)
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
@@ -1,59 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"read_only" : {
|
3
|
-
"files": "browse",
|
4
|
-
"data": "view",
|
5
|
-
"reports": "view",
|
6
|
-
"organization": null,
|
7
|
-
"people": null,
|
8
|
-
"person_core": null,
|
9
|
-
"person_core_create": null,
|
10
|
-
"person_core_edit": null,
|
11
|
-
"person_account": null,
|
12
|
-
"person_details": null,
|
13
|
-
"pages": "view",
|
14
|
-
"page_editor": null,
|
15
|
-
"registers": "view"
|
16
|
-
},
|
17
|
-
"forms" : {
|
18
|
-
"files": "browse",
|
19
|
-
"data": "view",
|
20
|
-
"reports": "view",
|
21
|
-
"organization": null,
|
22
|
-
"person_core": "attach",
|
23
|
-
"person_core_create": null,
|
24
|
-
"person_core_edit": null,
|
25
|
-
"person_account": null,
|
26
|
-
"person_details": "view",
|
27
|
-
"pages": "create",
|
28
|
-
"page_editor": "basic",
|
29
|
-
"registers": "view"
|
30
|
-
},
|
31
|
-
"editor" : {
|
32
|
-
"files": "browse",
|
33
|
-
"data": "update",
|
34
|
-
"reports": "edit",
|
35
|
-
"organization": "view",
|
36
|
-
"person_core": "view_people_manager",
|
37
|
-
"person_core_create": null,
|
38
|
-
"person_core_edit": null,
|
39
|
-
"person_account": "view",
|
40
|
-
"person_details": "view",
|
41
|
-
"pages": "create",
|
42
|
-
"page_editor": "intermediate",
|
43
|
-
"registers": "view"
|
44
|
-
},
|
45
|
-
"administrator" : {
|
46
|
-
"files": "administrate",
|
47
|
-
"data": "administrate",
|
48
|
-
"reports": "administrate",
|
49
|
-
"organization": "administrate",
|
50
|
-
"person_core": "view_people_manager",
|
51
|
-
"person_core_create": "create",
|
52
|
-
"person_core_edit": "edit",
|
53
|
-
"person_account": "edit",
|
54
|
-
"person_details": "edit_private",
|
55
|
-
"pages": "administrate",
|
56
|
-
"page_editor": "advanced",
|
57
|
-
"registers": "dashboard"
|
58
|
-
}
|
59
|
-
}
|