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
1a6ad1da
Commit
1a6ad1da
authored
Mar 05, 2019
by
GitLab Bot
Browse files
Options
Browse Files
Download
Plain Diff
Automatic merge of gitlab-org/gitlab-ce master
parents
215a8e01
26bff00d
Changes
7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
316 additions
and
206 deletions
+316
-206
app/models/concerns/milestoneish.rb
app/models/concerns/milestoneish.rb
+7
-7
app/models/project_feature.rb
app/models/project_feature.rb
+11
-4
app/policies/project_policy.rb
app/policies/project_policy.rb
+1
-1
app/views/shared/milestones/_milestone.html.haml
app/views/shared/milestones/_milestone.html.haml
+1
-1
app/views/shared/milestones/_tabs.html.haml
app/views/shared/milestones/_tabs.html.haml
+1
-1
changelogs/unreleased/security-id-fix-mr-visibility.yml
changelogs/unreleased/security-id-fix-mr-visibility.yml
+5
-0
spec/finders/merge_requests_finder_spec.rb
spec/finders/merge_requests_finder_spec.rb
+290
-192
No files found.
app/models/concerns/milestoneish.rb
View file @
1a6ad1da
...
...
@@ -46,13 +46,6 @@ module Milestoneish
end
end
def
merge_requests_visible_to_user
(
user
)
memoize_per_user
(
user
,
:merge_requests_visible_to_user
)
do
MergeRequestsFinder
.
new
(
user
,
{})
.
execute
.
where
(
milestone_id:
milestoneish_id
)
end
end
def
issue_participants_visible_by_user
(
user
)
User
.
joins
(
:issue_assignees
)
.
where
(
'issue_assignees.issue_id'
=>
issues_visible_to_user
(
user
).
select
(
:id
))
...
...
@@ -73,6 +66,13 @@ module Milestoneish
merge_requests_visible_to_user
(
user
).
sort_by_attribute
(
'label_priority'
)
end
def
merge_requests_visible_to_user
(
user
)
memoize_per_user
(
user
,
:merge_requests_visible_to_user
)
do
MergeRequestsFinder
.
new
(
user
,
issues_finder_params
)
.
execute
.
where
(
milestone_id:
milestoneish_id
)
end
end
def
upcoming?
start_date
&&
start_date
.
future?
end
...
...
app/models/project_feature.rb
View file @
1a6ad1da
...
...
@@ -76,7 +76,7 @@ class ProjectFeature < ActiveRecord::Base
# This feature might not be behind a feature flag at all, so default to true
return
false
unless
::
Feature
.
enabled?
(
feature
,
user
,
default_enabled:
true
)
get_permission
(
user
,
access_level
(
feature
)
)
get_permission
(
user
,
feature
)
end
def
access_level
(
feature
)
...
...
@@ -134,12 +134,12 @@ class ProjectFeature < ActiveRecord::Base
(
FEATURES
-
%i(pages)
).
each
{
|
f
|
validator
.
call
(
"
#{
f
}
_access_level"
)}
end
def
get_permission
(
user
,
level
)
case
level
def
get_permission
(
user
,
feature
)
case
access_level
(
feature
)
when
DISABLED
false
when
PRIVATE
user
&&
(
project
.
team
.
member?
(
user
)
||
user
.
full_private_access?
)
team_access?
(
user
,
feature
)
when
ENABLED
true
when
PUBLIC
...
...
@@ -148,6 +148,13 @@ class ProjectFeature < ActiveRecord::Base
true
end
end
def
team_access?
(
user
,
feature
)
return
unless
user
return
true
if
user
.
full_private_access?
project
.
team
.
member?
(
user
,
ProjectFeature
.
required_minimum_access_level
(
feature
))
end
end
ProjectFeature
.
prepend
(
EE
::
ProjectFeature
)
app/policies/project_policy.rb
View file @
1a6ad1da
...
...
@@ -465,7 +465,7 @@ class ProjectPolicy < BasePolicy
when
ProjectFeature
::
DISABLED
false
when
ProjectFeature
::
PRIVATE
guest?
||
admin?
admin?
||
team_access_level
>=
ProjectFeature
.
required_minimum_access_level
(
feature
)
else
true
end
...
...
app/views/shared/milestones/_milestone.html.haml
View file @
1a6ad1da
...
...
@@ -32,7 +32,7 @@
=
milestone_progress_bar
(
milestone
)
=
link_to
pluralize
(
milestone
.
total_issues_count
(
current_user
),
'Issue'
),
issues_path
·
=
link_to
pluralize
(
milestone
.
merge_requests
.
size
,
'Merge Request'
),
merge_requests_path
=
link_to
pluralize
(
milestone
.
merge_requests
_visible_to_user
(
current_user
)
.
size
,
'Merge Request'
),
merge_requests_path
.float-lg-right.light
#{
milestone
.
percent_complete
(
current_user
)
}
% complete
.col-sm-2
.milestone-actions.d-flex.justify-content-sm-start.justify-content-md-end
...
...
app/views/shared/milestones/_tabs.html.haml
View file @
1a6ad1da
...
...
@@ -12,7 +12,7 @@
%li
.nav-item
=
link_to
'#tab-merge-requests'
,
class:
'nav-link'
,
'data-toggle'
=>
'tab'
,
'data-endpoint'
:
milestone_merge_request_tab_path
(
milestone
)
do
Merge Requests
%span
.badge.badge-pill
=
milestone
.
merge_requests
.
size
%span
.badge.badge-pill
=
milestone
.
merge_requests
_visible_to_user
(
current_user
)
.
size
-
else
%li
.nav-item
=
link_to
'#tab-merge-requests'
,
class:
'nav-link active'
,
'data-toggle'
=>
'tab'
,
'data-endpoint'
:
milestone_merge_request_tab_path
(
milestone
)
do
...
...
changelogs/unreleased/security-id-fix-mr-visibility.yml
0 → 100644
View file @
1a6ad1da
---
title
:
Display the correct number of MRs a user has access to
merge_request
:
author
:
type
:
security
spec/finders/merge_requests_finder_spec.rb
View file @
1a6ad1da
This diff is collapsed.
Click to expand it.
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