BigW Consortium Gitlab
Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gitlab-ce
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Forest Godfrey
gitlab-ce
Commits
74fb5004
Commit
74fb5004
authored
May 25, 2016
by
Douwe Maan
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'issue_10725' into 'master'
Fix forks creation when visibility level is restricted fixes #10725 See merge request !4283
parents
380966e8
52733352
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
48 additions
and
1 deletion
+48
-1
CHANGELOG
CHANGELOG
+1
-0
fork_service.rb
app/services/projects/fork_service.rb
+13
-1
visibility_level.rb
lib/gitlab/visibility_level.rb
+7
-0
fork_service_spec.rb
spec/services/projects/fork_service_spec.rb
+27
-0
No files found.
CHANGELOG
View file @
74fb5004
Please view this file on the master branch, on stable branches it's out of date.
v 8.9.0 (unreleased)
- Allow forking projects with restricted visibility level
- Redesign navigation for project pages
- Use gitlab-shell v3.0.0
- Add rake task 'gitlab:db:configure' for conditionally seeding or migrating the database
...
...
app/services/projects/fork_service.rb
View file @
74fb5004
...
...
@@ -3,7 +3,7 @@ module Projects
def
execute
new_params
=
{
forked_from_project_id:
@project
.
id
,
visibility_level:
@project
.
visibility_level
,
visibility_level:
allowed_
visibility_level
,
description:
@project
.
description
,
name:
@project
.
name
,
path:
@project
.
path
,
...
...
@@ -19,5 +19,17 @@ module Projects
new_project
=
CreateService
.
new
(
current_user
,
new_params
).
execute
new_project
end
private
def
allowed_visibility_level
project_level
=
@project
.
visibility_level
if
Gitlab
::
VisibilityLevel
.
non_restricted_level?
(
project_level
)
project_level
else
Gitlab
::
VisibilityLevel
.
highest_allowed_level
end
end
end
end
lib/gitlab/visibility_level.rb
View file @
74fb5004
...
...
@@ -32,6 +32,13 @@ module Gitlab
}
end
def
highest_allowed_level
restricted_levels
=
current_application_settings
.
restricted_visibility_levels
allowed_levels
=
self
.
values
-
restricted_levels
allowed_levels
.
max
||
PRIVATE
end
def
allowed_for?
(
user
,
level
)
user
.
is_admin?
||
allowed_level?
(
level
.
to_i
)
end
...
...
spec/services/projects/fork_service_spec.rb
View file @
74fb5004
...
...
@@ -42,6 +42,33 @@ describe Projects::ForkService, services: true do
expect
(
@to_project
.
builds_enabled?
).
to
be_truthy
end
end
context
"when project has restricted visibility level"
do
context
"and only one visibility level is restricted"
do
before
do
@from_project
.
update_attributes
(
visibility_level:
Gitlab
::
VisibilityLevel
::
INTERNAL
)
stub_application_setting
(
restricted_visibility_levels:
[
Gitlab
::
VisibilityLevel
::
INTERNAL
])
end
it
"creates fork with highest allowed level"
do
forked_project
=
fork_project
(
@from_project
,
@to_user
)
expect
(
forked_project
.
visibility_level
).
to
eq
(
Gitlab
::
VisibilityLevel
::
PUBLIC
)
end
end
context
"and all visibility levels are restricted"
do
before
do
stub_application_setting
(
restricted_visibility_levels:
[
Gitlab
::
VisibilityLevel
::
PUBLIC
,
Gitlab
::
VisibilityLevel
::
INTERNAL
,
Gitlab
::
VisibilityLevel
::
PRIVATE
])
end
it
"creates fork with private visibility levels"
do
forked_project
=
fork_project
(
@from_project
,
@to_user
)
expect
(
forked_project
.
visibility_level
).
to
eq
(
Gitlab
::
VisibilityLevel
::
PRIVATE
)
end
end
end
end
describe
:fork_to_namespace
do
...
...
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