etna 0.1.42 → 0.1.45

Sign up to get free protection for your applications and to get access to all the features.
data/lib/etna/user.rb CHANGED
@@ -1,11 +1,7 @@
1
+ require_relative './permissions'
2
+
1
3
  module Etna
2
4
  class User
3
- ROLE_NAMES = {
4
- 'A' => :admin,
5
- 'E' => :editor,
6
- 'V' => :viewer
7
- }
8
-
9
5
  def initialize params, token=nil
10
6
  @name, @email, @encoded_permissions, encoded_flags, @task = params.values_at(:name, :email, :perm, :flags, :task)
11
7
 
@@ -21,19 +17,7 @@ module Etna
21
17
  end
22
18
 
23
19
  def permissions
24
- @permissions ||= @encoded_permissions.split(/\;/).map do |roles|
25
- role, projects = roles.split(/:/)
26
-
27
- projects.split(/\,/).reduce([]) do |perms,project_name|
28
- perms.push([
29
- project_name,
30
- {
31
- role: ROLE_NAMES[role.upcase],
32
- restricted: role == role.upcase
33
- }
34
- ])
35
- end
36
- end.inject([],:+).to_h
20
+ @permissions ||= Etna::Permissions.from_encoded_permissions(@encoded_permissions).to_hash
37
21
  end
38
22
 
39
23
  def has_flag?(flag)
@@ -44,12 +28,6 @@ module Etna
44
28
  permissions.keys
45
29
  end
46
30
 
47
- ROLE_MATCH = {
48
- admin: /[Aa]/,
49
- editor: /[Ee]/,
50
- viewer: /[Vv]/,
51
- restricted: /[AEV]/,
52
- }
53
31
  def has_any_role?(project, *roles)
54
32
  perm = permissions[project.to_s]
55
33
 
@@ -75,7 +53,7 @@ module Etna
75
53
  end
76
54
 
77
55
  def can_view? project
78
- is_superviewer? || has_any_role?(project, :admin, :editor, :viewer)
56
+ is_superviewer? || has_any_role?(project, :admin, :editor, :viewer, :guest)
79
57
  end
80
58
 
81
59
  # superusers - administrators of the Administration group - cannot
data/lib/etna.rb CHANGED
@@ -1,4 +1,7 @@
1
1
  require 'json'
2
+ require_relative './etna/redirect'
3
+ require_relative './etna/environment_variables'
4
+ require_relative './etna/injection'
2
5
  require_relative './etna/ext'
3
6
  require_relative './etna/logger'
4
7
  require_relative './etna/server'
@@ -24,6 +27,7 @@ require_relative './etna/cwl'
24
27
  require_relative './etna/metrics'
25
28
  require_relative './etna/remote'
26
29
  require_relative './etna/synchronize_db'
30
+ require_relative './etna/janus_utils'
27
31
 
28
32
  class EtnaApp
29
33
  include Etna::Application
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: etna
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.42
4
+ version: 0.1.45
5
5
  platform: ruby
6
6
  authors:
7
7
  - Saurabh Asthana
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-15 00:00:00.000000000 Z
11
+ date: 2022-06-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -56,16 +56,16 @@ dependencies:
56
56
  name: multipart-post
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: 2.1.1
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: 2.1.1
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rollbar
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -177,6 +177,8 @@ files:
177
177
  - lib/etna/clients/metis/workflows/metis_download_workflow.rb
178
178
  - lib/etna/clients/metis/workflows/metis_upload_workflow.rb
179
179
  - lib/etna/clients/metis/workflows/sync_metis_data_workflow.rb
180
+ - lib/etna/clients/metis/workflows/walk_metis_diff_workflow.rb
181
+ - lib/etna/clients/metis/workflows/walk_metis_workflow.rb
180
182
  - lib/etna/clients/polyphemus.rb
181
183
  - lib/etna/clients/polyphemus/client.rb
182
184
  - lib/etna/clients/polyphemus/models.rb
@@ -190,17 +192,22 @@ files:
190
192
  - lib/etna/describe_routes.rb
191
193
  - lib/etna/directed_graph.rb
192
194
  - lib/etna/environment_scoped.rb
195
+ - lib/etna/environment_variables.rb
193
196
  - lib/etna/errors.rb
194
197
  - lib/etna/ext.rb
195
198
  - lib/etna/filesystem.rb
196
199
  - lib/etna/formatting.rb
197
200
  - lib/etna/generate_autocompletion_script.rb
198
201
  - lib/etna/hmac.rb
202
+ - lib/etna/injection.rb
203
+ - lib/etna/janus_utils.rb
199
204
  - lib/etna/json_serializable_struct.rb
200
205
  - lib/etna/logger.rb
201
206
  - lib/etna/metrics.rb
202
207
  - lib/etna/multipart_serializable_nested_hash.rb
203
208
  - lib/etna/parse_body.rb
209
+ - lib/etna/permissions.rb
210
+ - lib/etna/redirect.rb
204
211
  - lib/etna/remote.rb
205
212
  - lib/etna/route.rb
206
213
  - lib/etna/server.rb