Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
c30e32ef
Commit
c30e32ef
authored
Apr 25, 2020
by
Steve Abrams
Committed by
Giorgenes Gelatti
Jul 20, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove Package License
- Remote package license and checks accordingly. - Fix specs
parent
99d9728a
Changes
22
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
87 additions
and
170 deletions
+87
-170
ee/app/controllers/concerns/packages_access.rb
ee/app/controllers/concerns/packages_access.rb
+1
-2
ee/app/controllers/ee/admin/application_settings_controller.rb
...p/controllers/ee/admin/application_settings_controller.rb
+4
-0
ee/app/helpers/ee/projects_helper.rb
ee/app/helpers/ee/projects_helper.rb
+2
-4
ee/app/models/license.rb
ee/app/models/license.rb
+1
-1
ee/lib/ee/api/entities/application_setting.rb
ee/lib/ee/api/entities/application_setting.rb
+1
-1
ee/lib/ee/api/entities/project.rb
ee/lib/ee/api/entities/project.rb
+1
-1
ee/lib/ee/api/settings.rb
ee/lib/ee/api/settings.rb
+1
-1
ee/spec/controllers/admin/application_settings_controller_spec.rb
...controllers/admin/application_settings_controller_spec.rb
+1
-1
ee/spec/features/groups/navbar_spec.rb
ee/spec/features/groups/navbar_spec.rb
+2
-10
ee/spec/features/groups/packages_spec.rb
ee/spec/features/groups/packages_spec.rb
+0
-13
ee/spec/features/projects/navbar_spec.rb
ee/spec/features/projects/navbar_spec.rb
+8
-11
ee/spec/features/projects/package_files_spec.rb
ee/spec/features/projects/package_files_spec.rb
+0
-9
ee/spec/features/projects/packages_spec.rb
ee/spec/features/projects/packages_spec.rb
+0
-13
ee/spec/features/projects/settings/packages_settings_spec.rb
ee/spec/features/projects/settings/packages_settings_spec.rb
+1
-17
ee/spec/requests/api/projects_spec.rb
ee/spec/requests/api/projects_spec.rb
+2
-30
ee/spec/requests/api/settings_spec.rb
ee/spec/requests/api/settings_spec.rb
+1
-1
ee/spec/services/groups/transfer_service_spec.rb
ee/spec/services/groups/transfer_service_spec.rb
+0
-1
ee/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb
ee/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb
+1
-39
spec/features/groups/navbar_spec.rb
spec/features/groups/navbar_spec.rb
+4
-7
spec/features/projects/features_visibility_spec.rb
spec/features/projects/features_visibility_spec.rb
+5
-1
spec/features/projects/navbar_spec.rb
spec/features/projects/navbar_spec.rb
+15
-7
spec/support/helpers/navbar_structure_helper.rb
spec/support/helpers/navbar_structure_helper.rb
+36
-0
No files found.
ee/app/controllers/concerns/packages_access.rb
View file @
c30e32ef
...
...
@@ -11,8 +11,7 @@ module PackagesAccess
private
def
verify_packages_enabled!
render_404
unless
Gitlab
.
config
.
packages
.
enabled
&&
project
.
feature_available?
(
:packages
)
render_404
unless
Gitlab
.
config
.
packages
.
enabled
end
def
verify_read_package!
...
...
ee/app/controllers/ee/admin/application_settings_controller.rb
View file @
c30e32ef
...
...
@@ -60,6 +60,10 @@ module EE
attrs
<<
:maintenance_mode_message
end
if
License
.
feature_available?
(
:package_forwarding
)
attrs
<<
:npm_package_requests_forwarding
end
attrs
end
...
...
ee/app/helpers/ee/projects_helper.rb
View file @
c30e32ef
...
...
@@ -31,9 +31,7 @@ module EE
nav_tabs
+=
get_project_security_nav_tabs
(
project
,
current_user
)
if
::
Gitlab
.
config
.
packages
.
enabled
&&
project
.
feature_available?
(
:packages
)
&&
can?
(
current_user
,
:read_package
,
project
)
if
::
Gitlab
.
config
.
packages
.
enabled
&&
can?
(
current_user
,
:read_package
,
project
)
nav_tabs
<<
:packages
end
...
...
@@ -73,7 +71,7 @@ module EE
override
:project_permissions_panel_data
def
project_permissions_panel_data
(
project
)
super
.
merge
(
packagesAvailable:
::
Gitlab
.
config
.
packages
.
enabled
&&
project
.
feature_available?
(
:packages
)
,
packagesAvailable:
::
Gitlab
.
config
.
packages
.
enabled
,
packagesHelpPath:
help_page_path
(
'user/packages/index'
)
)
end
...
...
ee/app/models/license.rb
View file @
c30e32ef
...
...
@@ -94,7 +94,7 @@ class License < ApplicationRecord
object_storage
operations_dashboard
opsgenie_integration
package
s
package
_forwarding
pages_size_limit
productivity_analytics
project_aliases
...
...
ee/lib/ee/api/entities/application_setting.rb
View file @
c30e32ef
...
...
@@ -18,7 +18,7 @@ module EE
expose
:default_project_deletion_protection
,
if:
->
(
_instance
,
_opts
)
{
::
License
.
feature_available?
(
:default_project_deletion_protection
)
}
expose
:deletion_adjourned_period
,
if:
->
(
_instance
,
_opts
)
{
::
License
.
feature_available?
(
:adjourned_deletion_for_projects_and_groups
)
}
expose
:updating_name_disabled_for_users
,
if:
->
(
_instance
,
_opts
)
{
::
License
.
feature_available?
(
:disable_name_update_for_users
)
}
expose
:npm_package_requests_forwarding
,
if:
->
(
_instance
,
_opts
)
{
::
License
.
feature_available?
(
:package
s
)
}
expose
:npm_package_requests_forwarding
,
if:
->
(
_instance
,
_opts
)
{
::
License
.
feature_available?
(
:package
_forwarding
)
}
expose
:group_owners_can_manage_default_branch_protection
,
if:
->
(
_instance
,
_opts
)
{
::
License
.
feature_available?
(
:default_branch_protection_restriction_in_groups
)
}
expose
:maintenance_mode
,
if:
->
(
_instance
,
_opts
)
{
::
Gitlab
::
Geo
.
license_allows?
&&
::
Feature
.
enabled?
(
:maintenance_mode
)
}
expose
:maintenance_mode_message
,
if:
->
(
_instance
,
_opts
)
{
::
Gitlab
::
Geo
.
license_allows?
&&
::
Feature
.
enabled?
(
:maintenance_mode
)
}
...
...
ee/lib/ee/api/entities/project.rb
View file @
c30e32ef
...
...
@@ -24,7 +24,7 @@ module EE
expose
:mirror_overwrites_diverged_branches
,
if:
->
(
project
,
_
)
{
project
.
mirror?
}
expose
:external_authorization_classification_label
,
if:
->
(
_
,
_
)
{
License
.
feature_available?
(
:external_authorization_service_api_management
)
}
expose
:packages_enabled
,
if:
->
(
project
,
_
)
{
project
.
feature_available?
(
:packages
)
}
expose
:packages_enabled
expose
:marked_for_deletion_at
,
if:
->
(
project
,
_
)
{
project
.
feature_available?
(
:adjourned_deletion_for_projects_and_groups
)
}
expose
:marked_for_deletion_on
,
if:
->
(
project
,
_
)
{
project
.
feature_available?
(
:adjourned_deletion_for_projects_and_groups
)
}
do
|
project
,
_
|
project
.
marked_for_deletion_at
...
...
ee/lib/ee/api/settings.rb
View file @
c30e32ef
...
...
@@ -39,7 +39,7 @@ module EE
attrs
=
attrs
.
except
(
*
EE
::
ApplicationSettingsHelper
.
merge_request_appovers_rules_attributes
)
end
unless
License
.
feature_available?
(
:package
s
)
unless
License
.
feature_available?
(
:package
_forwarding
)
attrs
=
attrs
.
except
(
:npm_package_requests_forwarding
)
end
...
...
ee/spec/controllers/admin/application_settings_controller_spec.rb
View file @
c30e32ef
...
...
@@ -120,7 +120,7 @@ RSpec.describe Admin::ApplicationSettingsController do
context
'updating npm packages request forwarding setting'
do
let
(
:settings
)
{
{
npm_package_requests_forwarding:
true
}
}
let
(
:feature
)
{
:package
s
}
let
(
:feature
)
{
:package
_forwarding
}
it_behaves_like
'settings for licensed features'
end
...
...
ee/spec/features/groups/navbar_spec.rb
View file @
c30e32ef
...
...
@@ -17,6 +17,8 @@ RSpec.describe 'Group navbar' do
stub_feature_flags
(
group_iterations:
false
)
stub_feature_flags
(
group_wiki:
false
)
sign_in
(
user
)
insert_package_nav
(
_
(
'Kubernetes'
))
end
context
'when productivity analytics is available'
do
...
...
@@ -148,20 +150,10 @@ RSpec.describe 'Group navbar' do
context
'when packages are available'
do
before
do
stub_config
(
packages:
{
enabled:
true
},
registry:
{
enabled:
false
})
stub_licensed_features
(
packages:
true
)
insert_after_nav_item
(
_
(
'Kubernetes'
),
new_nav_item:
{
nav_item:
_
(
'Packages & Registries'
),
nav_sub_items:
[
_
(
'Package Registry'
)]
}
)
visit
group_path
(
group
)
end
it_behaves_like
'verified navigation bar'
context
'when container registry is available'
do
before
do
stub_config
(
registry:
{
enabled:
true
})
...
...
ee/spec/features/groups/packages_spec.rb
View file @
c30e32ef
...
...
@@ -10,22 +10,9 @@ RSpec.describe 'Group Packages' do
before
do
sign_in
(
user
)
group
.
add_maintainer
(
user
)
stub_licensed_features
(
packages:
true
)
end
context
'when feature is not available'
do
context
'packages feature is not available because of license'
do
before
do
stub_licensed_features
(
packages:
false
)
end
it
'gives 404'
do
visit_group_packages
expect
(
page
).
to
have_gitlab_http_status
(
:not_found
)
end
end
context
'packages feature is disabled by config'
do
before
do
allow
(
Gitlab
.
config
.
packages
).
to
receive
(
:enabled
).
and_return
(
false
)
...
...
ee/spec/features/projects/navbar_spec.rb
View file @
c30e32ef
...
...
@@ -11,6 +11,14 @@ RSpec.describe 'Project navbar' do
let_it_be
(
:project
)
{
create
(
:project
,
:repository
)
}
before
do
insert_after_sub_nav_item
(
_
(
'Labels'
),
within:
_
(
'Issues'
),
new_sub_nav_item_name:
_
(
'Service Desk'
)
)
insert_package_nav
(
_
(
'Operations'
))
project
.
add_maintainer
(
user
)
sign_in
(
user
)
end
...
...
@@ -56,21 +64,10 @@ RSpec.describe 'Project navbar' do
context
'when packages are available'
do
before
do
stub_config
(
packages:
{
enabled:
true
},
registry:
{
enabled:
false
})
stub_licensed_features
(
packages:
true
)
insert_after_nav_item
(
_
(
'Operations'
),
new_nav_item:
{
nav_item:
_
(
'Packages & Registries'
),
nav_sub_items:
[
_
(
'Package Registry'
)]
}
)
visit
project_path
(
project
)
end
it_behaves_like
'verified navigation bar'
context
'when container registry is available'
do
before
do
stub_config
(
registry:
{
enabled:
true
})
...
...
ee/spec/features/projects/package_files_spec.rb
View file @
c30e32ef
...
...
@@ -10,7 +10,6 @@ RSpec.describe 'PackageFiles' do
before
do
sign_in
(
user
)
stub_licensed_features
(
packages:
true
)
end
context
'user with master role'
do
...
...
@@ -40,14 +39,6 @@ RSpec.describe 'PackageFiles' do
expect
(
status_code
).
to
eq
(
404
)
end
it
'gives 404 when packages feature is not available'
do
stub_licensed_features
(
packages:
false
)
visit
download_project_package_file_path
(
project
,
package_file
)
expect
(
status_code
).
to
eq
(
404
)
end
end
it
'does not allow direct download when no access to the project'
do
...
...
ee/spec/features/projects/packages_spec.rb
View file @
c30e32ef
...
...
@@ -9,22 +9,9 @@ RSpec.describe 'Packages' do
before
do
sign_in
(
user
)
project
.
add_maintainer
(
user
)
stub_licensed_features
(
packages:
true
)
end
context
'when feature is not available'
do
context
'packages feature is not available because of license'
do
before
do
stub_licensed_features
(
packages:
false
)
end
it
'gives 404'
do
visit_project_packages
expect
(
status_code
).
to
eq
(
404
)
end
end
context
'packages feature is disabled by config'
do
before
do
allow
(
Gitlab
.
config
.
packages
).
to
receive
(
:enabled
).
and_return
(
false
)
...
...
ee/spec/features/projects/settings/packages_settings_spec.rb
View file @
c30e32ef
...
...
@@ -16,11 +16,7 @@ RSpec.describe 'Projects > Settings > Packages', :js do
allow
(
Gitlab
.
config
.
packages
).
to
receive
(
:enabled
).
and_return
(
true
)
end
context
'allowed by license'
do
before
do
stub_licensed_features
(
packages:
true
)
end
context
'without the need for a license'
do
it
'displays the packages toggle button'
do
visit
edit_project_path
(
project
)
...
...
@@ -28,18 +24,6 @@ RSpec.describe 'Projects > Settings > Packages', :js do
expect
(
page
).
to
have_selector
(
'input[name="project[packages_enabled]"] + button'
,
visible:
true
)
end
end
context
'not allowed by license'
do
before
do
stub_licensed_features
(
packages:
false
)
end
it
'does not show up in UI'
do
visit
edit_project_path
(
project
)
expect
(
page
).
not_to
have_content
(
'Packages'
)
end
end
end
context
'Packages disabled in config'
do
...
...
ee/spec/requests/api/projects_spec.rb
View file @
c30e32ef
...
...
@@ -143,21 +143,11 @@ RSpec.describe API::Projects do
end
describe
'packages_enabled attribute'
do
it
'is exposed when the feature is available'
do
stub_licensed_features
(
packages:
true
)
it
'is exposed'
do
get
api
(
"/projects/
#{
project
.
id
}
"
,
user
)
expect
(
json_response
).
to
have_key
'packages_enabled'
end
it
'is not exposed when the feature is not available'
do
stub_licensed_features
(
packages:
false
)
get
api
(
"/projects/
#{
project
.
id
}
"
,
user
)
expect
(
json_response
).
not_to
have_key
'packages_enabled'
end
end
describe
'compliance_frameworks attribute'
do
...
...
@@ -815,11 +805,7 @@ RSpec.describe API::Projects do
expect
(
project
.
packages_enabled
).
to
be
true
end
context
'packages feature is allowed by license'
do
before
do
stub_licensed_features
(
packages:
true
)
end
context
'without the need for a license'
do
it
'disables project packages feature'
do
put
(
api
(
"/projects/
#{
project
.
id
}
"
,
user
),
params:
{
packages_enabled:
false
})
...
...
@@ -828,20 +814,6 @@ RSpec.describe API::Projects do
expect
(
json_response
[
'packages_enabled'
]).
to
eq
(
false
)
end
end
context
'packages feature is not allowed by license'
do
before
do
stub_licensed_features
(
packages:
false
)
end
it
'disables project packages feature but does not return packages_enabled attribute'
do
put
(
api
(
"/projects/
#{
project
.
id
}
"
,
user
),
params:
{
packages_enabled:
false
})
expect
(
response
).
to
have_gitlab_http_status
(
:ok
)
expect
(
project
.
reload
.
packages_enabled
).
to
be
false
expect
(
json_response
[
'packages_enabled'
]).
to
be_nil
end
end
end
describe
'updating approvals_before_merge attribute'
do
...
...
ee/spec/requests/api/settings_spec.rb
View file @
c30e32ef
...
...
@@ -186,7 +186,7 @@ RSpec.describe API::Settings, 'EE Settings' do
context
'updating npm packages request forwarding'
do
let
(
:settings
)
{
{
npm_package_requests_forwarding:
true
}
}
let
(
:feature
)
{
:package
s
}
let
(
:feature
)
{
:package
_forwarding
}
it_behaves_like
'settings for licensed features'
end
...
...
ee/spec/services/groups/transfer_service_spec.rb
View file @
c30e32ef
...
...
@@ -10,7 +10,6 @@ RSpec.describe Groups::TransferService, '#execute' do
let
(
:transfer_service
)
{
described_class
.
new
(
group
,
user
)
}
before
do
stub_licensed_features
(
packages:
true
)
group
.
add_owner
(
user
)
new_group
&
.
add_owner
(
user
)
end
...
...
ee/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb
View file @
c30e32ef
...
...
@@ -10,7 +10,7 @@ RSpec.describe 'layouts/nav/sidebar/_project' do
assign
(
:repository
,
project
.
repository
)
allow
(
view
).
to
receive
(
:current_ref
).
and_return
(
'master'
)
stub_licensed_features
(
tracing:
true
,
packages:
true
)
stub_licensed_features
(
tracing:
true
)
end
describe
'issue boards'
do
...
...
@@ -253,31 +253,6 @@ RSpec.describe 'layouts/nav/sidebar/_project' do
end
end
context
'when packages are disabled'
do
before
do
stub_licensed_features
(
packages:
false
)
end
it
'packages list link is not visible'
do
render
expect
(
rendered
).
not_to
have_link
(
package_entry_name
,
href:
project_packages_path
(
project
))
end
it
'top level packages link links to container registry'
do
render
expect
(
rendered
).
to
have_link
(
package_menu_name
,
href:
project_container_registry_index_path
(
project
))
end
it
'packages top level and container registry links are visible'
do
render
expect
(
rendered
).
to
have_link
(
package_menu_name
,
href:
project_container_registry_index_path
(
project
))
expect
(
rendered
).
to
have_link
(
'Container Registry'
,
href:
project_container_registry_index_path
(
project
))
end
end
context
'when container registry is disabled'
do
before
do
stub_container_registry_config
(
enabled:
false
)
...
...
@@ -296,19 +271,6 @@ RSpec.describe 'layouts/nav/sidebar/_project' do
expect
(
rendered
).
not_to
have_link
(
'Container Registry'
,
href:
project_container_registry_index_path
(
project
))
end
end
context
'when both packages and container registry are disabled'
do
before
do
stub_licensed_features
(
packages:
false
)
stub_container_registry_config
(
enabled:
false
)
end
it
'packages top level item is not visible'
do
render
expect
(
rendered
).
not_to
have_link
(
package_menu_name
,
href:
project_packages_path
(
project
))
end
end
end
describe
'Settings > Operations'
do
...
...
spec/features/groups/navbar_spec.rb
View file @
c30e32ef
...
...
@@ -45,6 +45,8 @@ RSpec.describe 'Group navbar' do
end
before
do
insert_package_nav
(
_
(
'Kubernetes'
))
stub_feature_flags
(
group_push_rules:
false
)
stub_feature_flags
(
group_iterations:
false
)
stub_feature_flags
(
group_wiki:
false
)
...
...
@@ -62,13 +64,8 @@ RSpec.describe 'Group navbar' do
before
do
stub_config
(
registry:
{
enabled:
true
})
insert_after_nav_item
(
_
(
'Kubernetes'
),
new_nav_item:
{
nav_item:
_
(
'Packages & Registries'
),
nav_sub_items:
[
_
(
'Container Registry'
)]
}
)
insert_container_nav
(
_
(
'Kubernetes'
))
visit
group_path
(
group
)
end
...
...
spec/features/projects/features_visibility_spec.rb
View file @
c30e32ef
...
...
@@ -186,7 +186,11 @@ RSpec.describe 'Edit Project Settings' do
click_button
"Save changes"
end
expect
(
find
(
".sharing-permissions"
)).
to
have_selector
(
".project-feature-toggle.is-disabled"
,
count:
3
)
if
::
Gitlab
.
ee?
expect
(
find
(
".sharing-permissions"
)).
to
have_selector
(
".project-feature-toggle.is-disabled"
,
count:
4
)
else
expect
(
find
(
".sharing-permissions"
)).
to
have_selector
(
".project-feature-toggle.is-disabled"
,
count:
3
)
end
end
it
"shows empty features project homepage"
do
...
...
spec/features/projects/navbar_spec.rb
View file @
c30e32ef
...
...
@@ -12,6 +12,19 @@ RSpec.describe 'Project navbar' do
let_it_be
(
:project
)
{
create
(
:project
,
:repository
)
}
before
do
# TODO - This can be moved into 'project navbar structure' shared
# context when service desk feature gets moved to core.
# More information in: https://gitlab.com/gitlab-org/gitlab/-/issues/215364
if
Gitlab
.
ee?
insert_after_sub_nav_item
(
_
(
'Labels'
),
within:
_
(
'Issues'
),
new_sub_nav_item_name:
_
(
'Service Desk'
)
)
end
insert_package_nav
(
_
(
'Operations'
))
project
.
add_maintainer
(
user
)
sign_in
(
user
)
end
...
...
@@ -58,13 +71,8 @@ RSpec.describe 'Project navbar' do
before
do
stub_config
(
registry:
{
enabled:
true
})
insert_after_nav_item
(
_
(
'Operations'
),
new_nav_item:
{
nav_item:
_
(
'Packages & Registries'
),
nav_sub_items:
[
_
(
'Container Registry'
)]
}
)
insert_container_nav
(
_
(
'Operations'
))
visit
project_path
(
project
)
end
...
...
spec/support/helpers/navbar_structure_helper.rb
View file @
c30e32ef
...
...
@@ -18,4 +18,40 @@ module NavbarStructureHelper
index
=
hash
[
:nav_sub_items
].
find_index
(
before_sub_nav_item_name
)
hash
[
:nav_sub_items
].
insert
(
index
+
1
,
new_sub_nav_item_name
)
end
# TODO - This can be moved into 'project navbar structure' shared
# context when package feature gets moved to core.
# More information in: https://gitlab.com/gitlab-org/gitlab/-/issues/221259
def
insert_package_nav
(
within
)
if
::
Gitlab
.
ee?
insert_after_nav_item
(
within
,
new_nav_item:
{
nav_item:
_
(
'Packages & Registries'
),
nav_sub_items:
[
_
(
'Package Registry'
)]
}
)
end
end
# TODO - This ee? condition can be removed
# when package feature gets moved to core.
# More information in: https://gitlab.com/gitlab-org/gitlab/-/issues/221259
def
insert_container_nav
(
within
)
if
::
Gitlab
.
ee?
insert_after_sub_nav_item
(
_
(
'Package Registry'
),
within:
_
(
'Packages & Registries'
),
new_sub_nav_item_name:
_
(
'Container Registry'
)
)
else
insert_after_nav_item
(
within
,
new_nav_item:
{
nav_item:
_
(
'Packages & Registries'
),
nav_sub_items:
[
_
(
'Container Registry'
)]
}
)
end
end
end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment