openproject-token 5.0.0 → 5.1.0

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: 24a0ac03322b7a1471a9b638111f18d7a038e3171fb1e9156e6b7d04d0503053
4
+ data.tar.gz: 47d565cc5231417c67dc9db5639bdb8eecb8e12203c7f43cc9e789ff3c66df23
5
5
  SHA512:
6
- metadata.gz: eb330f918313dbda534b4f159d50c79645b0de2d64060134017fb6d0b5741a997a2f166fd06791626ac13f06f95d2d24551f33de6dd5c011c5ba696d7711f08a
7
- data.tar.gz: 58c9d1c2db792f3bf1280973803c68fc244ef63b4c3cdc45cb6c82b79d8b3b5b5e97909f0480ef8d1654fa3bef8f2711ba0b27e3dfeb2a35954651048664500c
6
+ metadata.gz: c50b946dd44364c974f326fd3c4987f0edd9ad1c04a123bf8242af1e2556923f68f12e90032a58376c2a3e867f1a73b421b8ea81f94d61afd7de67c0020a88d6
7
+ data.tar.gz: 1a8d2af2edaf6587af2791fd414b9446e41a2f9fb7b66a17b76c1a8b60956182dbe0da6c7c8d67f2a0753ffc22ed914e80f869a8272c31e3de96f9b0201377db
@@ -21,18 +21,61 @@ 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
+ one_drive_sharepoint_file_storage
48
+ work_package_sharing
28
49
  work_package_subject_generation
29
50
  ].freeze
30
51
 
52
+ PREMIUM_PLAN_FEATURES = %i[
53
+ customize_life_cycle
54
+ ldap_groups
55
+ project_list_sharing
56
+ sso_auth_providers
57
+ ].freeze
58
+
59
+ CORPORATE_PLAN_FEATURES = %i[
60
+ virus_scanning
61
+ ].freeze
62
+
31
63
  FEATURES_PER_PLAN = {
32
- legacy_enterprise: LEGACY_ENTERPRISE_PLAN_FEATURES
64
+ # old plan that is used for all plans that do not have a plan set
65
+ legacy_enterprise: LEGACY_ENTERPRISE_PLAN_FEATURES,
66
+
67
+ # new plans
68
+ basic: BASIC_PLAN_FEATURES,
69
+ professional: PROFESSIONAL_PLAN_FEATURES + BASIC_PLAN_FEATURES,
70
+ premium: PREMIUM_PLAN_FEATURES + PROFESSIONAL_PLAN_FEATURES + BASIC_PLAN_FEATURES,
71
+ corporate: CORPORATE_PLAN_FEATURES + PREMIUM_PLAN_FEATURES + PROFESSIONAL_PLAN_FEATURES + BASIC_PLAN_FEATURES
33
72
  }.freeze
34
73
 
35
- AVAILABLE_PLAN_NAMES = FEATURES_PER_PLAN.keys.sort.freeze
74
+ # Current plan names, sorted by inheritance
75
+ ACTIVE_PLAN_NAMES = %i[basic professional premium corporate].freeze
76
+
77
+ # All available plan names
78
+ AVAILABLE_PLAN_NAMES = %i[legacy_enterprise] + ACTIVE_PLAN_NAMES
36
79
 
37
80
  # default plan that is assigned to a token if no plan is given (especially legacy tokens)
38
81
  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.0"
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
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.0
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-03-25 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: activemodel