Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-11-19 11:27:35 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-11-19 11:27:35 +0300
commit7e9c479f7de77702622631cff2628a9c8dcbc627 (patch)
treec8f718a08e110ad7e1894510980d2155a6549197 /spec/support/shared_contexts/policies
parente852b0ae16db4052c1c567d9efa4facc81146e88 (diff)
Add latest changes from gitlab-org/gitlab@13-6-stable-eev13.6.0-rc42
Diffstat (limited to 'spec/support/shared_contexts/policies')
-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