summaryrefslogtreecommitdiff
path: root/spec/support/shared_contexts/policies/project_policy_table_shared_context.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/support/shared_contexts/policies/project_policy_table_shared_context.rb')
-rw-r--r--spec/support/shared_contexts/policies/project_policy_table_shared_context.rb903
1 files changed, 483 insertions, 420 deletions
diff --git a/spec/support/shared_contexts/policies/project_policy_table_shared_context.rb b/spec/support/shared_contexts/policies/project_policy_table_shared_context.rb
index efd82ecb15a..8c9a60fa703 100644
--- a/spec/support/shared_contexts/policies/project_policy_table_shared_context.rb
+++ b/spec/support/shared_contexts/policies/project_policy_table_shared_context.rb
@@ -3,6 +3,8 @@
RSpec.shared_context 'ProjectPolicyTable context' do
using RSpec::Parameterized::TableSyntax
+ include AdminModeHelper
+
let(:pendings) { {} }
let(:pending?) do
pendings.include?(
@@ -10,106 +12,117 @@ RSpec.shared_context 'ProjectPolicyTable context' do
project_level: project_level,
feature_access_level: feature_access_level,
membership: membership,
+ admin_mode: admin_mode,
expected_count: expected_count
}
)
end
# rubocop:disable Metrics/AbcSize
- # project_level, :feature_access_level, :membership, :expected_count
+ # project_level, :feature_access_level, :membership, :admin_mode, :expected_count
def permission_table_for_reporter_feature_access
- :public | :enabled | :admin | 1
- :public | :enabled | :reporter | 1
- :public | :enabled | :guest | 1
- :public | :enabled | :non_member | 1
- :public | :enabled | :anonymous | 1
-
- :public | :private | :admin | 1
- :public | :private | :reporter | 1
- :public | :private | :guest | 0
- :public | :private | :non_member | 0
- :public | :private | :anonymous | 0
-
- :public | :disabled | :reporter | 0
- :public | :disabled | :guest | 0
- :public | :disabled | :non_member | 0
- :public | :disabled | :anonymous | 0
-
- :internal | :enabled | :admin | 1
- :internal | :enabled | :reporter | 1
- :internal | :enabled | :guest | 1
- :internal | :enabled | :non_member | 1
- :internal | :enabled | :anonymous | 0
-
- :internal | :private | :admin | 1
- :internal | :private | :reporter | 1
- :internal | :private | :guest | 0
- :internal | :private | :non_member | 0
- :internal | :private | :anonymous | 0
-
- :internal | :disabled | :reporter | 0
- :internal | :disabled | :guest | 0
- :internal | :disabled | :non_member | 0
- :internal | :disabled | :anonymous | 0
-
- :private | :private | :admin | 1
- :private | :private | :reporter | 1
- :private | :private | :guest | 0
- :private | :private | :non_member | 0
- :private | :private | :anonymous | 0
-
- :private | :disabled | :reporter | 0
- :private | :disabled | :guest | 0
- :private | :disabled | :non_member | 0
- :private | :disabled | :anonymous | 0
+ :public | :enabled | :admin | true | 1
+ :public | :enabled | :admin | false | 1
+ :public | :enabled | :reporter | nil | 1
+ :public | :enabled | :guest | nil | 1
+ :public | :enabled | :non_member | nil | 1
+ :public | :enabled | :anonymous | nil | 1
+
+ :public | :private | :admin | true | 1
+ :public | :private | :admin | false | 0
+ :public | :private | :reporter | nil | 1
+ :public | :private | :guest | nil | 0
+ :public | :private | :non_member | nil | 0
+ :public | :private | :anonymous | nil | 0
+
+ :public | :disabled | :reporter | nil | 0
+ :public | :disabled | :guest | nil | 0
+ :public | :disabled | :non_member | nil | 0
+ :public | :disabled | :anonymous | nil | 0
+
+ :internal | :enabled | :admin | true | 1
+ :internal | :enabled | :admin | false | 1
+ :internal | :enabled | :reporter | nil | 1
+ :internal | :enabled | :guest | nil | 1
+ :internal | :enabled | :non_member | nil | 1
+ :internal | :enabled | :anonymous | nil | 0
+
+ :internal | :private | :admin | true | 1
+ :internal | :private | :admin | false | 0
+ :internal | :private | :reporter | nil | 1
+ :internal | :private | :guest | nil | 0
+ :internal | :private | :non_member | nil | 0
+ :internal | :private | :anonymous | nil | 0
+
+ :internal | :disabled | :reporter | nil | 0
+ :internal | :disabled | :guest | nil | 0
+ :internal | :disabled | :non_member | nil | 0
+ :internal | :disabled | :anonymous | nil | 0
+
+ :private | :private | :admin | true | 1
+ :private | :private | :admin | false | 0
+ :private | :private | :reporter | nil | 1
+ :private | :private | :guest | nil | 0
+ :private | :private | :non_member | nil | 0
+ :private | :private | :anonymous | nil | 0
+
+ :private | :disabled | :reporter | nil | 0
+ :private | :disabled | :guest | nil | 0
+ :private | :disabled | :non_member | nil | 0
+ :private | :disabled | :anonymous | nil | 0
end
- # project_level, :feature_access_level, :membership, :expected_count
+ # project_level, :feature_access_level, :membership, :admin_mode, :expected_count
def permission_table_for_guest_feature_access
- :public | :enabled | :admin | 1
- :public | :enabled | :reporter | 1
- :public | :enabled | :guest | 1
- :public | :enabled | :non_member | 1
- :public | :enabled | :anonymous | 1
-
- :public | :private | :admin | 1
- :public | :private | :reporter | 1
- :public | :private | :guest | 1
- :public | :private | :non_member | 0
- :public | :private | :anonymous | 0
-
- :public | :disabled | :reporter | 0
- :public | :disabled | :guest | 0
- :public | :disabled | :non_member | 0
- :public | :disabled | :anonymous | 0
-
- :internal | :enabled | :admin | 1
- :internal | :enabled | :reporter | 1
- :internal | :enabled | :guest | 1
- :internal | :enabled | :non_member | 1
- :internal | :enabled | :anonymous | 0
-
- :internal | :private | :admin | 1
- :internal | :private | :reporter | 1
- :internal | :private | :guest | 1
- :internal | :private | :non_member | 0
- :internal | :private | :anonymous | 0
-
- :internal | :disabled | :reporter | 0
- :internal | :disabled | :guest | 0
- :internal | :disabled | :non_member | 0
- :internal | :disabled | :anonymous | 0
-
- :private | :private | :admin | 1
- :private | :private | :reporter | 1
- :private | :private | :guest | 1
- :private | :private | :non_member | 0
- :private | :private | :anonymous | 0
-
- :private | :disabled | :reporter | 0
- :private | :disabled | :guest | 0
- :private | :disabled | :non_member | 0
- :private | :disabled | :anonymous | 0
+ :public | :enabled | :admin | true | 1
+ :public | :enabled | :admin | false | 1
+ :public | :enabled | :reporter | nil | 1
+ :public | :enabled | :guest | nil | 1
+ :public | :enabled | :non_member | nil | 1
+ :public | :enabled | :anonymous | nil | 1
+
+ :public | :private | :admin | true | 1
+ :public | :private | :admin | false | 0
+ :public | :private | :reporter | nil | 1
+ :public | :private | :guest | nil | 1
+ :public | :private | :non_member | nil | 0
+ :public | :private | :anonymous | nil | 0
+
+ :public | :disabled | :reporter | nil | 0
+ :public | :disabled | :guest | nil | 0
+ :public | :disabled | :non_member | nil | 0
+ :public | :disabled | :anonymous | nil | 0
+
+ :internal | :enabled | :admin | true | 1
+ :internal | :enabled | :admin | false | 1
+ :internal | :enabled | :reporter | nil | 1
+ :internal | :enabled | :guest | nil | 1
+ :internal | :enabled | :non_member | nil | 1
+ :internal | :enabled | :anonymous | nil | 0
+
+ :internal | :private | :admin | true | 1
+ :internal | :private | :admin | false | 0
+ :internal | :private | :reporter | nil | 1
+ :internal | :private | :guest | nil | 1
+ :internal | :private | :non_member | nil | 0
+ :internal | :private | :anonymous | nil | 0
+
+ :internal | :disabled | :reporter | nil | 0
+ :internal | :disabled | :guest | nil | 0
+ :internal | :disabled | :non_member | nil | 0
+ :internal | :disabled | :anonymous | nil | 0
+
+ :private | :private | :admin | true | 1
+ :private | :private | :admin | false | 0
+ :private | :private | :reporter | nil | 1
+ :private | :private | :guest | nil | 1
+ :private | :private | :non_member | nil | 0
+ :private | :private | :anonymous | nil | 0
+
+ :private | :disabled | :reporter | nil | 0
+ :private | :disabled | :guest | nil | 0
+ :private | :disabled | :non_member | nil | 0
+ :private | :disabled | :anonymous | nil | 0
end
# This table is based on permission_table_for_guest_feature_access,
@@ -121,184 +134,208 @@ RSpec.shared_context 'ProjectPolicyTable context' do
# e.g. `repository` feature has minimum requirement of GUEST,
# but a GUEST are prohibited from reading code if project is private.
#
- # project_level, :feature_access_level, :membership, :expected_count
+ # project_level, :feature_access_level, :membership, :admin_mode, :expected_count
def permission_table_for_guest_feature_access_and_non_private_project_only
- :public | :enabled | :admin | 1
- :public | :enabled | :reporter | 1
- :public | :enabled | :guest | 1
- :public | :enabled | :non_member | 1
- :public | :enabled | :anonymous | 1
-
- :public | :private | :admin | 1
- :public | :private | :reporter | 1
- :public | :private | :guest | 1
- :public | :private | :non_member | 0
- :public | :private | :anonymous | 0
-
- :public | :disabled | :reporter | 0
- :public | :disabled | :guest | 0
- :public | :disabled | :non_member | 0
- :public | :disabled | :anonymous | 0
-
- :internal | :enabled | :admin | 1
- :internal | :enabled | :reporter | 1
- :internal | :enabled | :guest | 1
- :internal | :enabled | :non_member | 1
- :internal | :enabled | :anonymous | 0
-
- :internal | :private | :admin | 1
- :internal | :private | :reporter | 1
- :internal | :private | :guest | 1
- :internal | :private | :non_member | 0
- :internal | :private | :anonymous | 0
-
- :internal | :disabled | :reporter | 0
- :internal | :disabled | :guest | 0
- :internal | :disabled | :non_member | 0
- :internal | :disabled | :anonymous | 0
-
- :private | :private | :admin | 1
- :private | :private | :reporter | 1
- :private | :private | :guest | 0
- :private | :private | :non_member | 0
- :private | :private | :anonymous | 0
-
- :private | :disabled | :reporter | 0
- :private | :disabled | :guest | 0
- :private | :disabled | :non_member | 0
- :private | :disabled | :anonymous | 0
+ :public | :enabled | :admin | true | 1
+ :public | :enabled | :admin | false | 1
+ :public | :enabled | :reporter | nil | 1
+ :public | :enabled | :guest | nil | 1
+ :public | :enabled | :non_member | nil | 1
+ :public | :enabled | :anonymous | nil | 1
+
+ :public | :private | :admin | true | 1
+ :public | :private | :admin | false | 0
+ :public | :private | :reporter | nil | 1
+ :public | :private | :guest | nil | 1
+ :public | :private | :non_member | nil | 0
+ :public | :private | :anonymous | nil | 0
+
+ :public | :disabled | :reporter | nil | 0
+ :public | :disabled | :guest | nil | 0
+ :public | :disabled | :non_member | nil | 0
+ :public | :disabled | :anonymous | nil | 0
+
+ :internal | :enabled | :admin | true | 1
+ :internal | :enabled | :admin | false | 1
+ :internal | :enabled | :reporter | nil | 1
+ :internal | :enabled | :guest | nil | 1
+ :internal | :enabled | :non_member | nil | 1
+ :internal | :enabled | :anonymous | nil | 0
+
+ :internal | :private | :admin | true | 1
+ :internal | :private | :admin | false | 0
+ :internal | :private | :reporter | nil | 1
+ :internal | :private | :guest | nil | 1
+ :internal | :private | :non_member | nil | 0
+ :internal | :private | :anonymous | nil | 0
+
+ :internal | :disabled | :reporter | nil | 0
+ :internal | :disabled | :guest | nil | 0
+ :internal | :disabled | :non_member | nil | 0
+ :internal | :disabled | :anonymous | nil | 0
+
+ :private | :private | :admin | true | 1
+ :private | :private | :admin | false | 0
+ :private | :private | :reporter | nil | 1
+ :private | :private | :guest | nil | 0
+ :private | :private | :non_member | nil | 0
+ :private | :private | :anonymous | nil | 0
+
+ :private | :disabled | :reporter | nil | 0
+ :private | :disabled | :guest | nil | 0
+ :private | :disabled | :non_member | nil | 0
+ :private | :disabled | :anonymous | nil | 0
end
- # :project_level, :issues_access_level, :merge_requests_access_level, :membership, :expected_count
+ # :project_level, :issues_access_level, :merge_requests_access_level, :membership, :admin_mode, :expected_count
def permission_table_for_milestone_access
- :public | :enabled | :enabled | :admin | 1
- :public | :enabled | :enabled | :reporter | 1
- :public | :enabled | :enabled | :guest | 1
- :public | :enabled | :enabled | :non_member | 1
- :public | :enabled | :enabled | :anonymous | 1
-
- :public | :enabled | :private | :admin | 1
- :public | :enabled | :private | :reporter | 1
- :public | :enabled | :private | :guest | 1
- :public | :enabled | :private | :non_member | 1
- :public | :enabled | :private | :anonymous | 1
-
- :public | :enabled | :disabled | :admin | 1
- :public | :enabled | :disabled | :reporter | 1
- :public | :enabled | :disabled | :guest | 1
- :public | :enabled | :disabled | :non_member | 1
- :public | :enabled | :disabled | :anonymous | 1
-
- :public | :private | :enabled | :admin | 1
- :public | :private | :enabled | :reporter | 1
- :public | :private | :enabled | :guest | 1
- :public | :private | :enabled | :non_member | 1
- :public | :private | :enabled | :anonymous | 1
-
- :public | :private | :private | :admin | 1
- :public | :private | :private | :reporter | 1
- :public | :private | :private | :guest | 1
- :public | :private | :private | :non_member | 0
- :public | :private | :private | :anonymous | 0
-
- :public | :private | :disabled | :admin | 1
- :public | :private | :disabled | :reporter | 1
- :public | :private | :disabled | :guest | 1
- :public | :private | :disabled | :non_member | 0
- :public | :private | :disabled | :anonymous | 0
-
- :public | :disabled | :enabled | :admin | 1
- :public | :disabled | :enabled | :reporter | 1
- :public | :disabled | :enabled | :guest | 1
- :public | :disabled | :enabled | :non_member | 1
- :public | :disabled | :enabled | :anonymous | 1
-
- :public | :disabled | :private | :admin | 1
- :public | :disabled | :private | :reporter | 1
- :public | :disabled | :private | :guest | 0
- :public | :disabled | :private | :non_member | 0
- :public | :disabled | :private | :anonymous | 0
-
- :public | :disabled | :disabled | :reporter | 0
- :public | :disabled | :disabled | :guest | 0
- :public | :disabled | :disabled | :non_member | 0
- :public | :disabled | :disabled | :anonymous | 0
-
- :internal | :enabled | :enabled | :admin | 1
- :internal | :enabled | :enabled | :reporter | 1
- :internal | :enabled | :enabled | :guest | 1
- :internal | :enabled | :enabled | :non_member | 1
- :internal | :enabled | :enabled | :anonymous | 0
-
- :internal | :enabled | :private | :admin | 1
- :internal | :enabled | :private | :reporter | 1
- :internal | :enabled | :private | :guest | 1
- :internal | :enabled | :private | :non_member | 1
- :internal | :enabled | :private | :anonymous | 0
-
- :internal | :enabled | :disabled | :admin | 1
- :internal | :enabled | :disabled | :reporter | 1
- :internal | :enabled | :disabled | :guest | 1
- :internal | :enabled | :disabled | :non_member | 1
- :internal | :enabled | :disabled | :anonymous | 0
-
- :internal | :private | :enabled | :admin | 1
- :internal | :private | :enabled | :reporter | 1
- :internal | :private | :enabled | :guest | 1
- :internal | :private | :enabled | :non_member | 1
- :internal | :private | :enabled | :anonymous | 0
-
- :internal | :private | :private | :admin | 1
- :internal | :private | :private | :reporter | 1
- :internal | :private | :private | :guest | 1
- :internal | :private | :private | :non_member | 0
- :internal | :private | :private | :anonymous | 0
-
- :internal | :private | :disabled | :admin | 1
- :internal | :private | :disabled | :reporter | 1
- :internal | :private | :disabled | :guest | 1
- :internal | :private | :disabled | :non_member | 0
- :internal | :private | :disabled | :anonymous | 0
-
- :internal | :disabled | :enabled | :admin | 1
- :internal | :disabled | :enabled | :reporter | 1
- :internal | :disabled | :enabled | :guest | 1
- :internal | :disabled | :enabled | :non_member | 1
- :internal | :disabled | :enabled | :anonymous | 0
-
- :internal | :disabled | :private | :admin | 1
- :internal | :disabled | :private | :reporter | 1
- :internal | :disabled | :private | :guest | 0
- :internal | :disabled | :private | :non_member | 0
- :internal | :disabled | :private | :anonymous | 0
-
- :internal | :disabled | :disabled | :reporter | 0
- :internal | :disabled | :disabled | :guest | 0
- :internal | :disabled | :disabled | :non_member | 0
- :internal | :disabled | :disabled | :anonymous | 0
-
- :private | :private | :private | :admin | 1
- :private | :private | :private | :reporter | 1
- :private | :private | :private | :guest | 1
- :private | :private | :private | :non_member | 0
- :private | :private | :private | :anonymous | 0
-
- :private | :private | :disabled | :admin | 1
- :private | :private | :disabled | :reporter | 1
- :private | :private | :disabled | :guest | 1
- :private | :private | :disabled | :non_member | 0
- :private | :private | :disabled | :anonymous | 0
-
- :private | :disabled | :private | :admin | 1
- :private | :disabled | :private | :reporter | 1
- :private | :disabled | :private | :guest | 0
- :private | :disabled | :private | :non_member | 0
- :private | :disabled | :private | :anonymous | 0
-
- :private | :disabled | :disabled | :reporter | 0
- :private | :disabled | :disabled | :guest | 0
- :private | :disabled | :disabled | :non_member | 0
- :private | :disabled | :disabled | :anonymous | 0
+ :public | :enabled | :enabled | :admin | true | 1
+ :public | :enabled | :enabled | :admin | false | 1
+ :public | :enabled | :enabled | :reporter | nil | 1
+ :public | :enabled | :enabled | :guest | nil | 1
+ :public | :enabled | :enabled | :non_member | nil | 1
+ :public | :enabled | :enabled | :anonymous | nil | 1
+
+ :public | :enabled | :private | :admin | true | 1
+ :public | :enabled | :private | :admin | false | 1
+ :public | :enabled | :private | :reporter | nil | 1
+ :public | :enabled | :private | :guest | nil | 1
+ :public | :enabled | :private | :non_member | nil | 1
+ :public | :enabled | :private | :anonymous | nil | 1
+
+ :public | :enabled | :disabled | :admin | true | 1
+ :public | :enabled | :disabled | :admin | false | 1
+ :public | :enabled | :disabled | :reporter | nil | 1
+ :public | :enabled | :disabled | :guest | nil | 1
+ :public | :enabled | :disabled | :non_member | nil | 1
+ :public | :enabled | :disabled | :anonymous | nil | 1
+
+ :public | :private | :enabled | :admin | true | 1
+ :public | :private | :enabled | :admin | false | 1
+ :public | :private | :enabled | :reporter | nil | 1
+ :public | :private | :enabled | :guest | nil | 1
+ :public | :private | :enabled | :non_member | nil | 1
+ :public | :private | :enabled | :anonymous | nil | 1
+
+ :public | :private | :private | :admin | true | 1
+ :public | :private | :private | :admin | false | 0
+ :public | :private | :private | :reporter | nil | 1
+ :public | :private | :private | :guest | nil | 1
+ :public | :private | :private | :non_member | nil | 0
+ :public | :private | :private | :anonymous | nil | 0
+
+ :public | :private | :disabled | :admin | true | 1
+ :public | :private | :disabled | :admin | false | 0
+ :public | :private | :disabled | :reporter | nil | 1
+ :public | :private | :disabled | :guest | nil | 1
+ :public | :private | :disabled | :non_member | nil | 0
+ :public | :private | :disabled | :anonymous | nil | 0
+
+ :public | :disabled | :enabled | :admin | true | 1
+ :public | :disabled | :enabled | :admin | false | 1
+ :public | :disabled | :enabled | :reporter | nil | 1
+ :public | :disabled | :enabled | :guest | nil | 1
+ :public | :disabled | :enabled | :non_member | nil | 1
+ :public | :disabled | :enabled | :anonymous | nil | 1
+
+ :public | :disabled | :private | :admin | true | 1
+ :public | :disabled | :private | :admin | false | 0
+ :public | :disabled | :private | :reporter | nil | 1
+ :public | :disabled | :private | :guest | nil | 0
+ :public | :disabled | :private | :non_member | nil | 0
+ :public | :disabled | :private | :anonymous | nil | 0
+
+ :public | :disabled | :disabled | :reporter | nil | 0
+ :public | :disabled | :disabled | :guest | nil | 0
+ :public | :disabled | :disabled | :non_member | nil | 0
+ :public | :disabled | :disabled | :anonymous | nil | 0
+
+ :internal | :enabled | :enabled | :admin | true | 1
+ :internal | :enabled | :enabled | :admin | false | 1
+ :internal | :enabled | :enabled | :reporter | nil | 1
+ :internal | :enabled | :enabled | :guest | nil | 1
+ :internal | :enabled | :enabled | :non_member | nil | 1
+ :internal | :enabled | :enabled | :anonymous | nil | 0
+
+ :internal | :enabled | :private | :admin | true | 1
+ :internal | :enabled | :private | :admin | false | 1
+ :internal | :enabled | :private | :reporter | nil | 1
+ :internal | :enabled | :private | :guest | nil | 1
+ :internal | :enabled | :private | :non_member | nil | 1
+ :internal | :enabled | :private | :anonymous | nil | 0
+
+ :internal | :enabled | :disabled | :admin | true | 1
+ :internal | :enabled | :disabled | :admin | false | 1
+ :internal | :enabled | :disabled | :reporter | nil | 1
+ :internal | :enabled | :disabled | :guest | nil | 1
+ :internal | :enabled | :disabled | :non_member | nil | 1
+ :internal | :enabled | :disabled | :anonymous | nil | 0
+
+ :internal | :private | :enabled | :admin | true | 1
+ :internal | :private | :enabled | :admin | false | 1
+ :internal | :private | :enabled | :reporter | nil | 1
+ :internal | :private | :enabled | :guest | nil | 1
+ :internal | :private | :enabled | :non_member | nil | 1
+ :internal | :private | :enabled | :anonymous | nil | 0
+
+ :internal | :private | :private | :admin | true | 1
+ :internal | :private | :private | :admin | false | 0
+ :internal | :private | :private | :reporter | nil | 1
+ :internal | :private | :private | :guest | nil | 1
+ :internal | :private | :private | :non_member | nil | 0
+ :internal | :private | :private | :anonymous | nil | 0
+
+ :internal | :private | :disabled | :admin | true | 1
+ :internal | :private | :disabled | :admin | false | 0
+ :internal | :private | :disabled | :reporter | nil | 1
+ :internal | :private | :disabled | :guest | nil | 1
+ :internal | :private | :disabled | :non_member | nil | 0
+ :internal | :private | :disabled | :anonymous | nil | 0
+
+ :internal | :disabled | :enabled | :admin | true | 1
+ :internal | :disabled | :enabled | :admin | false | 1
+ :internal | :disabled | :enabled | :reporter | nil | 1
+ :internal | :disabled | :enabled | :guest | nil | 1
+ :internal | :disabled | :enabled | :non_member | nil | 1
+ :internal | :disabled | :enabled | :anonymous | nil | 0
+
+ :internal | :disabled | :private | :admin | true | 1
+ :internal | :disabled | :private | :admin | false | 0
+ :internal | :disabled | :private | :reporter | nil | 1
+ :internal | :disabled | :private | :guest | nil | 0
+ :internal | :disabled | :private | :non_member | nil | 0
+ :internal | :disabled | :private | :anonymous | nil | 0
+
+ :internal | :disabled | :disabled | :reporter | nil | 0
+ :internal | :disabled | :disabled | :guest | nil | 0
+ :internal | :disabled | :disabled | :non_member | nil | 0
+ :internal | :disabled | :disabled | :anonymous | nil | 0
+
+ :private | :private | :private | :admin | true | 1
+ :private | :private | :private | :admin | false | 0
+ :private | :private | :private | :reporter | nil | 1
+ :private | :private | :private | :guest | nil | 1
+ :private | :private | :private | :non_member | nil | 0
+ :private | :private | :private | :anonymous | nil | 0
+
+ :private | :private | :disabled | :admin | true | 1
+ :private | :private | :disabled | :admin | false | 0
+ :private | :private | :disabled | :reporter | nil | 1
+ :private | :private | :disabled | :guest | nil | 1
+ :private | :private | :disabled | :non_member | nil | 0
+ :private | :private | :disabled | :anonymous | nil | 0
+
+ :private | :disabled | :private | :admin | true | 1
+ :private | :disabled | :private | :admin | false | 0
+ :private | :disabled | :private | :reporter | nil | 1
+ :private | :disabled | :private | :guest | nil | 0
+ :private | :disabled | :private | :non_member | nil | 0
+ :private | :disabled | :private | :anonymous | nil | 0
+
+ :private | :disabled | :disabled | :reporter | nil | 0
+ :private | :disabled | :disabled | :guest | nil | 0
+ :private | :disabled | :disabled | :non_member | nil | 0
+ :private | :disabled | :disabled | :anonymous | nil | 0
end
# :project_level, :membership, :expected_count
@@ -321,166 +358,192 @@ RSpec.shared_context 'ProjectPolicyTable context' do
# :snippet_level, :project_level, :feature_access_level, :membership, :expected_count
def permission_table_for_project_snippet_access
- :public | :public | :enabled | :admin | 1
- :public | :public | :enabled | :reporter | 1
- :public | :public | :enabled | :guest | 1
- :public | :public | :enabled | :non_member | 1
- :public | :public | :enabled | :anonymous | 1
-
- :public | :public | :private | :admin | 1
- :public | :public | :private | :reporter | 1
- :public | :public | :private | :guest | 1
- :public | :public | :private | :non_member | 0
- :public | :public | :private | :anonymous | 0
-
- :public | :public | :disabled | :admin | 1
- :public | :public | :disabled | :reporter | 0
- :public | :public | :disabled | :guest | 0
- :public | :public | :disabled | :non_member | 0
- :public | :public | :disabled | :anonymous | 0
-
- :public | :internal | :enabled | :admin | 1
- :public | :internal | :enabled | :reporter | 1
- :public | :internal | :enabled | :guest | 1
- :public | :internal | :enabled | :non_member | 1
- :public | :internal | :enabled | :anonymous | 0
-
- :public | :internal | :private | :admin | 1
- :public | :internal | :private | :reporter | 1
- :public | :internal | :private | :guest | 1
- :public | :internal | :private | :non_member | 0
- :public | :internal | :private | :anonymous | 0
-
- :public | :internal | :disabled | :admin | 1
- :public | :internal | :disabled | :reporter | 0
- :public | :internal | :disabled | :guest | 0
- :public | :internal | :disabled | :non_member | 0
- :public | :internal | :disabled | :anonymous | 0
-
- :public | :private | :private | :admin | 1
- :public | :private | :private | :reporter | 1
- :public | :private | :private | :guest | 1
- :public | :private | :private | :non_member | 0
- :public | :private | :private | :anonymous | 0
-
- :public | :private | :disabled | :reporter | 0
- :public | :private | :disabled | :guest | 0
- :public | :private | :disabled | :non_member | 0
- :public | :private | :disabled | :anonymous | 0
-
- :internal | :public | :enabled | :admin | 1
- :internal | :public | :enabled | :reporter | 1
- :internal | :public | :enabled | :guest | 1
- :internal | :public | :enabled | :non_member | 1
- :internal | :public | :enabled | :anonymous | 0
-
- :internal | :public | :private | :admin | 1
- :internal | :public | :private | :reporter | 1
- :internal | :public | :private | :guest | 1
- :internal | :public | :private | :non_member | 0
- :internal | :public | :private | :anonymous | 0
-
- :internal | :public | :disabled | :admin | 1
- :internal | :public | :disabled | :reporter | 0
- :internal | :public | :disabled | :guest | 0
- :internal | :public | :disabled | :non_member | 0
- :internal | :public | :disabled | :anonymous | 0
-
- :internal | :internal | :enabled | :admin | 1
- :internal | :internal | :enabled | :reporter | 1
- :internal | :internal | :enabled | :guest | 1
- :internal | :internal | :enabled | :non_member | 1
- :internal | :internal | :enabled | :anonymous | 0
-
- :internal | :internal | :private | :admin | 1
- :internal | :internal | :private | :reporter | 1
- :internal | :internal | :private | :guest | 1
- :internal | :internal | :private | :non_member | 0
- :internal | :internal | :private | :anonymous | 0
-
- :internal | :internal | :disabled | :admin | 1
- :internal | :internal | :disabled | :reporter | 0
- :internal | :internal | :disabled | :guest | 0
- :internal | :internal | :disabled | :non_member | 0
- :internal | :internal | :disabled | :anonymous | 0
-
- :internal | :private | :private | :admin | 1
- :internal | :private | :private | :reporter | 1
- :internal | :private | :private | :guest | 1
- :internal | :private | :private | :non_member | 0
- :internal | :private | :private | :anonymous | 0
-
- :internal | :private | :disabled | :admin | 1
- :internal | :private | :disabled | :reporter | 0
- :internal | :private | :disabled | :guest | 0
- :internal | :private | :disabled | :non_member | 0
- :internal | :private | :disabled | :anonymous | 0
-
- :private | :public | :enabled | :admin | 1
- :private | :public | :enabled | :reporter | 1
- :private | :public | :enabled | :guest | 1
- :private | :public | :enabled | :non_member | 0
- :private | :public | :enabled | :anonymous | 0
-
- :private | :public | :private | :admin | 1
- :private | :public | :private | :reporter | 1
- :private | :public | :private | :guest | 1
- :private | :public | :private | :non_member | 0
- :private | :public | :private | :anonymous | 0
-
- :private | :public | :disabled | :admin | 1
- :private | :public | :disabled | :reporter | 0
- :private | :public | :disabled | :guest | 0
- :private | :public | :disabled | :non_member | 0
- :private | :public | :disabled | :anonymous | 0
-
- :private | :internal | :enabled | :admin | 1
- :private | :internal | :enabled | :reporter | 1
- :private | :internal | :enabled | :guest | 1
- :private | :internal | :enabled | :non_member | 0
- :private | :internal | :enabled | :anonymous | 0
-
- :private | :internal | :private | :admin | 1
- :private | :internal | :private | :reporter | 1
- :private | :internal | :private | :guest | 1
- :private | :internal | :private | :non_member | 0
- :private | :internal | :private | :anonymous | 0
-
- :private | :internal | :disabled | :admin | 1
- :private | :internal | :disabled | :reporter | 0
- :private | :internal | :disabled | :guest | 0
- :private | :internal | :disabled | :non_member | 0
- :private | :internal | :disabled | :anonymous | 0
-
- :private | :private | :private | :admin | 1
- :private | :private | :private | :reporter | 1
- :private | :private | :private | :guest | 1
- :private | :private | :private | :non_member | 0
- :private | :private | :private | :anonymous | 0
-
- :private | :private | :disabled | :admin | 1
- :private | :private | :disabled | :reporter | 0
- :private | :private | :disabled | :guest | 0
- :private | :private | :disabled | :non_member | 0
- :private | :private | :disabled | :anonymous | 0
+ :public | :public | :enabled | :admin | true | 1
+ :public | :public | :enabled | :admin | false | 1
+ :public | :public | :enabled | :reporter | nil | 1
+ :public | :public | :enabled | :guest | nil | 1
+ :public | :public | :enabled | :non_member | nil | 1
+ :public | :public | :enabled | :anonymous | nil | 1
+
+ :public | :public | :private | :admin | true | 1
+ :public | :public | :private | :admin | false | 0
+ :public | :public | :private | :reporter | nil | 1
+ :public | :public | :private | :guest | nil | 1
+ :public | :public | :private | :non_member | nil | 0
+ :public | :public | :private | :anonymous | nil | 0
+
+ :public | :public | :disabled | :admin | true | 1
+ :public | :public | :disabled | :admin | false | 0
+ :public | :public | :disabled | :reporter | nil | 0
+ :public | :public | :disabled | :guest | nil | 0
+ :public | :public | :disabled | :non_member | nil | 0
+ :public | :public | :disabled | :anonymous | nil | 0
+
+ :public | :internal | :enabled | :admin | true | 1
+ :public | :internal | :enabled | :admin | false | 1
+ :public | :internal | :enabled | :reporter | nil | 1
+ :public | :internal | :enabled | :guest | nil | 1
+ :public | :internal | :enabled | :non_member | nil | 1
+ :public | :internal | :enabled | :anonymous | nil | 0
+
+ :public | :internal | :private | :admin | true | 1
+ :public | :internal | :private | :admin | false | 0
+ :public | :internal | :private | :reporter | nil | 1
+ :public | :internal | :private | :guest | nil | 1
+ :public | :internal | :private | :non_member | nil | 0
+ :public | :internal | :private | :anonymous | nil | 0
+
+ :public | :internal | :disabled | :admin | true | 1
+ :public | :internal | :disabled | :admin | false | 0
+ :public | :internal | :disabled | :reporter | nil | 0
+ :public | :internal | :disabled | :guest | nil | 0
+ :public | :internal | :disabled | :non_member | nil | 0
+ :public | :internal | :disabled | :anonymous | nil | 0
+
+ :public | :private | :private | :admin | true | 1
+ :public | :private | :private | :admin | false | 0
+ :public | :private | :private | :reporter | nil | 1
+ :public | :private | :private | :guest | nil | 1
+ :public | :private | :private | :non_member | nil | 0
+ :public | :private | :private | :anonymous | nil | 0
+
+ :public | :private | :disabled | :reporter | nil | 0
+ :public | :private | :disabled | :guest | nil | 0
+ :public | :private | :disabled | :non_member | nil | 0
+ :public | :private | :disabled | :anonymous | nil | 0
+
+ :internal | :public | :enabled | :admin | true | 1
+ :internal | :public | :enabled | :admin | false | 1
+ :internal | :public | :enabled | :reporter | nil | 1
+ :internal | :public | :enabled | :guest | nil | 1
+ :internal | :public | :enabled | :non_member | nil | 1
+ :internal | :public | :enabled | :anonymous | nil | 0
+
+ :internal | :public | :private | :admin | true | 1
+ :internal | :public | :private | :admin | false | 0
+ :internal | :public | :private | :reporter | nil | 1
+ :internal | :public | :private | :guest | nil | 1
+ :internal | :public | :private | :non_member | nil | 0
+ :internal | :public | :private | :anonymous | nil | 0
+
+ :internal | :public | :disabled | :admin | true | 1
+ :internal | :public | :disabled | :admin | false | 0
+ :internal | :public | :disabled | :reporter | nil | 0
+ :internal | :public | :disabled | :guest | nil | 0
+ :internal | :public | :disabled | :non_member | nil | 0
+ :internal | :public | :disabled | :anonymous | nil | 0
+
+ :internal | :internal | :enabled | :admin | true | 1
+ :internal | :internal | :enabled | :admin | false | 1
+ :internal | :internal | :enabled | :reporter | nil | 1
+ :internal | :internal | :enabled | :guest | nil | 1
+ :internal | :internal | :enabled | :non_member | nil | 1
+ :internal | :internal | :enabled | :anonymous | nil | 0
+
+ :internal | :internal | :private | :admin | true | 1
+ :internal | :internal | :private | :admin | false | 0
+ :internal | :internal | :private | :reporter | nil | 1
+ :internal | :internal | :private | :guest | nil | 1
+ :internal | :internal | :private | :non_member | nil | 0
+ :internal | :internal | :private | :anonymous | nil | 0
+
+ :internal | :internal | :disabled | :admin | true | 1
+ :internal | :internal | :disabled | :admin | false | 0
+ :internal | :internal | :disabled | :reporter | nil | 0
+ :internal | :internal | :disabled | :guest | nil | 0
+ :internal | :internal | :disabled | :non_member | nil | 0
+ :internal | :internal | :disabled | :anonymous | nil | 0
+
+ :internal | :private | :private | :admin | true | 1
+ :internal | :private | :private | :admin | false | 0
+ :internal | :private | :private | :reporter | nil | 1
+ :internal | :private | :private | :guest | nil | 1
+ :internal | :private | :private | :non_member | nil | 0
+ :internal | :private | :private | :anonymous | nil | 0
+
+ :internal | :private | :disabled | :admin | true | 1
+ :internal | :private | :disabled | :admin | false | 0
+ :internal | :private | :disabled | :reporter | nil | 0
+ :internal | :private | :disabled | :guest | nil | 0
+ :internal | :private | :disabled | :non_member | nil | 0
+ :internal | :private | :disabled | :anonymous | nil | 0
+
+ :private | :public | :enabled | :admin | true | 1
+ :private | :public | :enabled | :admin | false | 0
+ :private | :public | :enabled | :reporter | nil | 1
+ :private | :public | :enabled | :guest | nil | 1
+ :private | :public | :enabled | :non_member | nil | 0
+ :private | :public | :enabled | :anonymous | nil | 0
+
+ :private | :public | :private | :admin | true | 1
+ :private | :public | :private | :admin | false | 0
+ :private | :public | :private | :reporter | nil | 1
+ :private | :public | :private | :guest | nil | 1
+ :private | :public | :private | :non_member | nil | 0
+ :private | :public | :private | :anonymous | nil | 0
+
+ :private | :public | :disabled | :admin | true | 1
+ :private | :public | :disabled | :admin | false | 0
+ :private | :public | :disabled | :reporter | nil | 0
+ :private | :public | :disabled | :guest | nil | 0
+ :private | :public | :disabled | :non_member | nil | 0
+ :private | :public | :disabled | :anonymous | nil | 0
+
+ :private | :internal | :enabled | :admin | true | 1
+ :private | :internal | :enabled | :admin | false | 0
+ :private | :internal | :enabled | :reporter | nil | 1
+ :private | :internal | :enabled | :guest | nil | 1
+ :private | :internal | :enabled | :non_member | nil | 0
+ :private | :internal | :enabled | :anonymous | nil | 0
+
+ :private | :internal | :private | :admin | true | 1
+ :private | :internal | :private | :admin | false | 0
+ :private | :internal | :private | :reporter | nil | 1
+ :private | :internal | :private | :guest | nil | 1
+ :private | :internal | :private | :non_member | nil | 0
+ :private | :internal | :private | :anonymous | nil | 0
+
+ :private | :internal | :disabled | :admin | true | 1
+ :private | :internal | :disabled | :admin | false | 0
+ :private | :internal | :disabled | :reporter | nil | 0
+ :private | :internal | :disabled | :guest | nil | 0
+ :private | :internal | :disabled | :non_member | nil | 0
+ :private | :internal | :disabled | :anonymous | nil | 0
+
+ :private | :private | :private | :admin | true | 1
+ :private | :private | :private | :admin | false | 0
+ :private | :private | :private | :reporter | nil | 1
+ :private | :private | :private | :guest | nil | 1
+ :private | :private | :private | :non_member | nil | 0
+ :private | :private | :private | :anonymous | nil | 0
+
+ :private | :private | :disabled | :admin | true | 1
+ :private | :private | :disabled | :admin | false | 0
+ :private | :private | :disabled | :reporter | nil | 0
+ :private | :private | :disabled | :guest | nil | 0
+ :private | :private | :disabled | :non_member | nil | 0
+ :private | :private | :disabled | :anonymous | nil | 0
end
# :snippet_level, :membership, :expected_count
def permission_table_for_personal_snippet_access
- :public | :admin | 1
- :public | :author | 1
- :public | :non_member | 1
- :public | :anonymous | 1
-
- :internal | :admin | 1
- :internal | :author | 1
- :internal | :non_member | 1
- :internal | :anonymous | 0
-
- :private | :admin | 1
- :private | :author | 1
- :private | :non_member | 0
- :private | :anonymous | 0
+ :public | :admin | true | 1
+ :public | :admin | false | 1
+ :public | :author | nil | 1
+ :public | :non_member | nil | 1
+ :public | :anonymous | nil | 1
+
+ :internal | :admin | true | 1
+ :internal | :admin | false | 1
+ :internal | :author | nil | 1
+ :internal | :non_member | nil | 1
+ :internal | :anonymous | nil | 0
+
+ :private | :admin | true | 1
+ :private | :admin | false | 0
+ :private | :author | nil | 1
+ :private | :non_member | nil | 0
+ :private | :anonymous | nil | 0
end
# rubocop:enable Metrics/AbcSize
end