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
0
Merge Requests
0
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
Tatuya Kamada
gitlab-ce
Commits
03f5ff75
Commit
03f5ff75
authored
Nov 16, 2015
by
Kamil Trzcinski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Show specific runners from projects where user is master or owner
parent
9179fcec
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
22 additions
and
6 deletions
+22
-6
CHANGELOG
CHANGELOG
+1
-0
app/models/user.rb
app/models/user.rb
+10
-5
spec/features/runners_spec.rb
spec/features/runners_spec.rb
+11
-1
No files found.
CHANGELOG
View file @
03f5ff75
...
@@ -35,6 +35,7 @@ v 8.2.0 (unreleased)
...
@@ -35,6 +35,7 @@ v 8.2.0 (unreleased)
- New design for project graphs page
- New design for project graphs page
- Remove deprecated dumped yaml file generated from previous job definitions
- Remove deprecated dumped yaml file generated from previous job definitions
- Fix incoming email config defaults
- Fix incoming email config defaults
- Show specific runners from projects where user is master or owner
- MR target branch is now visible on a list view when it is different from project's default one
- MR target branch is now visible on a list view when it is different from project's default one
- Improve Continuous Integration graphs page
- Improve Continuous Integration graphs page
- Make color of "Accept Merge Request" button consistent with current build status
- Make color of "Accept Merge Request" button consistent with current build status
...
...
app/models/user.rb
View file @
03f5ff75
...
@@ -405,6 +405,15 @@ class User < ActiveRecord::Base
...
@@ -405,6 +405,15 @@ class User < ActiveRecord::Base
end
end
end
end
def
master_or_owner_projects_id
@master_or_owner_projects_id
||=
begin
scope
=
{
access_level:
[
Gitlab
::
Access
::
MASTER
,
Gitlab
::
Access
::
OWNER
]
}
project_ids
=
personal_projects
.
pluck
(
:id
)
project_ids
.
push
(
*
groups_projects
.
where
(
members:
scope
).
pluck
(
:id
))
project_ids
.
push
(
*
projects
.
where
(
members:
scope
).
pluck
(
:id
).
uniq
)
end
end
# Projects user has access to
# Projects user has access to
def
authorized_projects
def
authorized_projects
@authorized_projects
||=
Project
.
where
(
id:
authorized_projects_id
)
@authorized_projects
||=
Project
.
where
(
id:
authorized_projects_id
)
...
@@ -765,14 +774,10 @@ class User < ActiveRecord::Base
...
@@ -765,14 +774,10 @@ class User < ActiveRecord::Base
!
solo_owned_groups
.
present?
!
solo_owned_groups
.
present?
end
end
def
ci_authorized_projects
@ci_authorized_projects
||=
Ci
::
Project
.
where
(
gitlab_id:
authorized_projects_id
)
end
def
ci_authorized_runners
def
ci_authorized_runners
@ci_authorized_runners
||=
begin
@ci_authorized_runners
||=
begin
runner_ids
=
Ci
::
RunnerProject
.
joins
(
:project
).
runner_ids
=
Ci
::
RunnerProject
.
joins
(
:project
).
where
(
ci_projects:
{
gitlab_id:
authorized
_projects_id
}).
select
(
:runner_id
)
where
(
ci_projects:
{
gitlab_id:
master_or_owner
_projects_id
}).
select
(
:runner_id
)
Ci
::
Runner
.
specific
.
where
(
id:
runner_ids
)
Ci
::
Runner
.
specific
.
where
(
id:
runner_ids
)
end
end
end
end
...
...
spec/features/runners_spec.rb
View file @
03f5ff75
...
@@ -14,15 +14,25 @@ describe "Runners" do
...
@@ -14,15 +14,25 @@ describe "Runners" do
@project2
=
FactoryGirl
.
create
:ci_project
@project2
=
FactoryGirl
.
create
:ci_project
@project2
.
gl_project
.
team
<<
[
user
,
:master
]
@project2
.
gl_project
.
team
<<
[
user
,
:master
]
@project3
=
FactoryGirl
.
create
:ci_project
@project3
.
gl_project
.
team
<<
[
user
,
:developer
]
@shared_runner
=
FactoryGirl
.
create
:ci_shared_runner
@shared_runner
=
FactoryGirl
.
create
:ci_shared_runner
@specific_runner
=
FactoryGirl
.
create
:ci_specific_runner
@specific_runner
=
FactoryGirl
.
create
:ci_specific_runner
@specific_runner2
=
FactoryGirl
.
create
:ci_specific_runner
@specific_runner2
=
FactoryGirl
.
create
:ci_specific_runner
@specific_runner3
=
FactoryGirl
.
create
:ci_specific_runner
@project
.
runners
<<
@specific_runner
@project
.
runners
<<
@specific_runner
@project2
.
runners
<<
@specific_runner2
@project2
.
runners
<<
@specific_runner2
@project3
.
runners
<<
@specific_runner3
visit
runners_path
(
@project
.
gl_project
)
visit
runners_path
(
@project
.
gl_project
)
end
end
before
do
expect
(
page
).
to_not
have_content
(
@specific_runner3
.
display_name
)
expect
(
page
).
to_not
have_content
(
@specific_runner3
.
display_name
)
end
it
"places runners in right places"
do
it
"places runners in right places"
do
expect
(
page
.
find
(
".available-specific-runners"
)).
to
have_content
(
@specific_runner2
.
display_name
)
expect
(
page
.
find
(
".available-specific-runners"
)).
to
have_content
(
@specific_runner2
.
display_name
)
expect
(
page
.
find
(
".activated-specific-runners"
)).
to
have_content
(
@specific_runner
.
display_name
)
expect
(
page
.
find
(
".activated-specific-runners"
)).
to
have_content
(
@specific_runner
.
display_name
)
...
@@ -76,10 +86,10 @@ describe "Runners" do
...
@@ -76,10 +86,10 @@ describe "Runners" do
@project
.
gl_project
.
team
<<
[
user
,
:master
]
@project
.
gl_project
.
team
<<
[
user
,
:master
]
@specific_runner
=
FactoryGirl
.
create
:ci_specific_runner
@specific_runner
=
FactoryGirl
.
create
:ci_specific_runner
@project
.
runners
<<
@specific_runner
@project
.
runners
<<
@specific_runner
visit
runners_path
(
@project
.
gl_project
)
end
end
it
"shows runner information"
do
it
"shows runner information"
do
visit
runners_path
(
@project
.
gl_project
)
click_on
@specific_runner
.
short_sha
click_on
@specific_runner
.
short_sha
expect
(
page
).
to
have_content
(
@specific_runner
.
platform
)
expect
(
page
).
to
have_content
(
@specific_runner
.
platform
)
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