openproject-token 5.0.0 → 5.1.1

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: 9021fbc26db21370414a6f9485ed9ce847b5d5ca3a77393aaff2e2f86c50728d
4
- data.tar.gz: 370ab48e53014a37c6cbb4bf418400864df94186bbbeba219500acedc725f70b
3
+ metadata.gz: 418d5023f09da5cab68a82dede27d33c479c6f973a610b24bc4970ce87108b03
4
+ data.tar.gz: acf825a0857cd76641883b263cf1ae7c30a75ba66bde9d6e302a7a022b2c5f12
5
5
  SHA512:
6
- metadata.gz: eb330f918313dbda534b4f159d50c79645b0de2d64060134017fb6d0b5741a997a2f166fd06791626ac13f06f95d2d24551f33de6dd5c011c5ba696d7711f08a
7
- data.tar.gz: 58c9d1c2db792f3bf1280973803c68fc244ef63b4c3cdc45cb6c82b79d8b3b5b5e97909f0480ef8d1654fa3bef8f2711ba0b27e3dfeb2a35954651048664500c
6
+ metadata.gz: df3616eb28b1b8c40890de094ea3b96b2d23a2e64f843d315b23f00b57e481a0d5377789b29864ed9650cbbc6e84bf8d754c4a2dce3e2d9bfc9fcf3c6c99990b
7
+ data.tar.gz: bef8d8487312a7bc6ff0fd49adc5b6b4a7c90da40b3f7de3d3b2746e3f2d0d2681d95c7141530095a2e2c44d789fc3c0e8ccf8bf273220bf079f5c44f83b4c3d
@@ -21,18 +21,62 @@ module OpenProject
21
21
  readonly_work_packages
22
22
  sso_auth_providers
23
23
  team_planner_view
24
- two_factor_authentication
25
24
  virus_scanning
26
25
  work_package_query_relation_columns
27
26
  work_package_sharing
27
+ ].freeze
28
+
29
+ BASIC_PLAN_FEATURES = %i[
30
+ baseline_comparison
31
+ board_view
32
+ conditional_highlighting
33
+ custom_actions
34
+ custom_field_hierarchies
35
+ date_alerts
36
+ define_custom_style
37
+ edit_attribute_groups
38
+ gantt_pdf_export
39
+ grid_widget_wp_graph
40
+ placeholder_users
41
+ readonly_work_packages
42
+ team_planner_view
43
+ work_package_query_relation_columns
44
+ ].freeze
45
+
46
+ PROFESSIONAL_PLAN_FEATURES = %i[
47
+ comments_with_restricted_visibility
48
+ one_drive_sharepoint_file_storage
49
+ work_package_sharing
28
50
  work_package_subject_generation
29
51
  ].freeze
30
52
 
53
+ PREMIUM_PLAN_FEATURES = %i[
54
+ customize_life_cycle
55
+ ldap_groups
56
+ project_list_sharing
57
+ sso_auth_providers
58
+ ].freeze
59
+
60
+ CORPORATE_PLAN_FEATURES = %i[
61
+ virus_scanning
62
+ ].freeze
63
+
31
64
  FEATURES_PER_PLAN = {
32
- legacy_enterprise: LEGACY_ENTERPRISE_PLAN_FEATURES
65
+ # old plan that is used for all plans that do not have a plan set
66
+ legacy_enterprise: LEGACY_ENTERPRISE_PLAN_FEATURES,
67
+
68
+ # new plans
69
+ basic: BASIC_PLAN_FEATURES,
70
+ professional: PROFESSIONAL_PLAN_FEATURES + BASIC_PLAN_FEATURES,
71
+ premium: PREMIUM_PLAN_FEATURES + PROFESSIONAL_PLAN_FEATURES + BASIC_PLAN_FEATURES,
72
+ corporate: CORPORATE_PLAN_FEATURES + PREMIUM_PLAN_FEATURES + PROFESSIONAL_PLAN_FEATURES + BASIC_PLAN_FEATURES
33
73
  }.freeze
34
74
 
35
- AVAILABLE_PLAN_NAMES = FEATURES_PER_PLAN.keys.sort.freeze
75
+ # Current plan names, sorted by inheritance
76
+ ACTIVE_PLAN_NAMES = %i[basic professional premium corporate].freeze
77
+
78
+ # All available plan names
79
+ AVAILABLE_PLAN_NAMES = %i[legacy_enterprise] + ACTIVE_PLAN_NAMES
36
80
 
37
81
  # default plan that is assigned to a token if no plan is given (especially legacy tokens)
38
82
  DEFAULT_PLAN = :legacy_enterprise
@@ -2,6 +2,6 @@
2
2
 
3
3
  module OpenProject
4
4
  class Token
5
- VERSION = "5.0.0"
5
+ VERSION = "5.1.1"
6
6
  end
7
7
  end
@@ -47,6 +47,12 @@ module OpenProject
47
47
  rescue Armor::ParseError
48
48
  raise ImportError, "Token value could not be parsed."
49
49
  end
50
+
51
+ def lowest_plan_for(feature)
52
+ OpenProject::Token::ACTIVE_PLAN_NAMES.detect do |plan|
53
+ OpenProject::Token::FEATURES_PER_PLAN[plan].include?(feature)
54
+ end
55
+ end
50
56
  end
51
57
 
52
58
  include ActiveModel::Validations
@@ -97,7 +103,7 @@ module OpenProject
97
103
  end
98
104
 
99
105
  def plan=(value)
100
- value.presence&.to_sym
106
+ @plan = value.presence&.to_sym
101
107
  end
102
108
 
103
109
  def available_features
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openproject-token
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.0
4
+ version: 5.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenProject GmbH
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-02-28 00:00:00.000000000 Z
10
+ date: 2025-04-03 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: activemodel
@@ -55,7 +55,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
55
55
  - !ruby/object:Gem::Version
56
56
  version: '0'
57
57
  requirements: []
58
- rubygems_version: 3.6.5
58
+ rubygems_version: 3.6.2
59
59
  specification_version: 4
60
60
  summary: OpenProject EE token reader
61
61
  test_files: []