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
iv
gitlab-ce
Commits
1ae65b22
Commit
1ae65b22
authored
Oct 26, 2015
by
Robert Speicher
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'fix-specific-runner-visibility' into 'master'
Fix visibility of specific runners See merge request !1688
parents
bf30332e
6db01498
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
20 additions
and
14 deletions
+20
-14
CHANGELOG
CHANGELOG
+1
-0
app/controllers/projects/runners_controller.rb
app/controllers/projects/runners_controller.rb
+4
-5
app/models/ci/runner.rb
app/models/ci/runner.rb
+1
-0
app/models/user.rb
app/models/user.rb
+14
-9
No files found.
CHANGELOG
View file @
1ae65b22
...
...
@@ -27,6 +27,7 @@ v 8.1.0
- Speed up load times of issue detail pages by roughly 1.5x
- Require CI jobs to be named
- Fix CI rendering regressions
- Fix specific runners visibility
- Allow developer to manage builds
- If a merge request is to close an issue, show this on the issue page (Zeger-Jan van de Weg)
- Add a system note and update relevant merge requests when a branch is deleted or re-added (Stan Hu)
...
...
app/controllers/projects/runners_controller.rb
View file @
1ae65b22
...
...
@@ -6,11 +6,10 @@ class Projects::RunnersController < Projects::ApplicationController
layout
'project_settings'
def
index
@runners
=
@ci_project
.
runners
.
order
(
'id DESC'
)
@specific_runners
=
Ci
::
Runner
.
specific
.
includes
(
:runner_projects
).
where
(
Ci
::
RunnerProject
.
table_name
=>
{
project_id:
current_user
.
authorized_projects
}
).
where
.
not
(
id:
@runners
).
order
(
"
#{
Ci
::
Runner
.
table_name
}
.id DESC"
).
page
(
params
[
:page
]).
per
(
20
)
@runners
=
@ci_project
.
runners
.
ordered
@specific_runners
=
current_user
.
ci_authorized_runners
.
where
.
not
(
id:
@ci_project
.
runners
).
ordered
.
page
(
params
[
:page
]).
per
(
20
)
@shared_runners
=
Ci
::
Runner
.
shared
.
active
@shared_runners_count
=
@shared_runners
.
count
(
:all
)
end
...
...
app/models/ci/runner.rb
View file @
1ae65b22
...
...
@@ -36,6 +36,7 @@ module Ci
scope
:active
,
->
()
{
where
(
active:
true
)
}
scope
:paused
,
->
()
{
where
(
active:
false
)
}
scope
:online
,
->
()
{
where
(
'contacted_at > ?'
,
LAST_CONTACT_TIME
)
}
scope
:ordered
,
->
()
{
order
(
id: :desc
)
}
acts_as_taggable
...
...
app/models/user.rb
View file @
1ae65b22
...
...
@@ -401,15 +401,17 @@ class User < ActiveRecord::Base
end
end
def
authorized_projects_id
@authorized_projects_id
||=
begin
project_ids
=
personal_projects
.
pluck
(
:id
)
project_ids
.
push
(
*
groups_projects
.
pluck
(
:id
))
project_ids
.
push
(
*
projects
.
pluck
(
:id
).
uniq
)
end
end
# Projects user has access to
def
authorized_projects
@authorized_projects
||=
begin
project_ids
=
personal_projects
.
pluck
(
:id
)
project_ids
.
push
(
*
groups_projects
.
pluck
(
:id
))
project_ids
.
push
(
*
projects
.
pluck
(
:id
).
uniq
)
Project
.
where
(
id:
project_ids
)
end
@authorized_projects
||=
Project
.
where
(
id:
authorized_projects_id
)
end
def
owned_projects
...
...
@@ -768,11 +770,14 @@ class User < ActiveRecord::Base
end
def
ci_authorized_projects
@ci_authorized_projects
||=
Ci
::
Project
.
where
(
gitlab_id:
authorized_projects
)
@ci_authorized_projects
||=
Ci
::
Project
.
where
(
gitlab_id:
authorized_projects
_id
)
end
def
ci_authorized_runners
Ci
::
Runner
.
specific
.
includes
(
:runner_projects
).
where
(
ci_runner_projects:
{
project_id:
ci_authorized_projects
}
)
@ci_authorized_runners
||=
begin
runner_ids
=
Ci
::
RunnerProject
.
joins
(
:project
).
where
(
ci_projects:
{
gitlab_id:
authorized_projects_id
}).
select
(
:runner_id
)
Ci
::
Runner
.
specific
.
where
(
id:
runner_ids
)
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