Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
0fbaf95f
G
gitlab-foss
项目概览
李少辉-开发者
/
gitlab-foss
通知
15
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gitlab-foss
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
0fbaf95f
编写于
6月 05, 2013
作者:
D
Dmitriy Zaporozhets
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #4155 from babatakao/selectable_master_project_deploy_keys
Selectable deploy keys contain master projects
上级
6cf6b45a
37a90d5f
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
29 addition
and
4 deletion
+29
-4
app/controllers/deploy_keys_controller.rb
app/controllers/deploy_keys_controller.rb
+1
-1
app/models/user.rb
app/models/user.rb
+4
-2
features/steps/project/deploy_keys.rb
features/steps/project/deploy_keys.rb
+1
-0
lib/api/projects.rb
lib/api/projects.rb
+1
-1
spec/models/user_spec.rb
spec/models/user_spec.rb
+22
-0
未找到文件。
app/controllers/deploy_keys_controller.rb
浏览文件 @
0fbaf95f
...
...
@@ -54,6 +54,6 @@ class DeployKeysController < ProjectResourceController
protected
def
available_keys
@available_keys
||=
current_user
.
owned
_deploy_keys
@available_keys
||=
current_user
.
accessible
_deploy_keys
end
end
app/models/user.rb
浏览文件 @
0fbaf95f
...
...
@@ -90,6 +90,8 @@ class User < ActiveRecord::Base
has_many
:personal_projects
,
through: :namespace
,
source: :projects
has_many
:projects
,
through: :users_projects
has_many
:master_projects
,
through: :users_projects
,
source: :project
,
conditions:
{
users_projects:
{
project_access:
UsersProject
::
MASTER
}
}
has_many
:own_projects
,
foreign_key: :creator_id
,
class_name:
'Project'
has_many
:owned_projects
,
through: :namespaces
,
source: :projects
...
...
@@ -354,7 +356,7 @@ class User < ActiveRecord::Base
extern_uid
&&
provider
==
'ldap'
end
def
owned
_deploy_keys
DeployKey
.
in_projects
(
self
.
owned
_projects
).
uniq
def
accessible
_deploy_keys
DeployKey
.
in_projects
(
self
.
master
_projects
).
uniq
end
end
features/steps/project/deploy_keys.rb
浏览文件 @
0fbaf95f
...
...
@@ -35,6 +35,7 @@ class Spinach::Features::ProjectDeployKeys < Spinach::FeatureSteps
step
'other project has deploy key'
do
@second_project
=
create
:project
,
namespace:
current_user
.
namespace
@second_project
.
team
<<
[
current_user
,
:master
]
create
(
:deploy_keys_project
,
project:
@second_project
)
end
...
...
lib/api/projects.rb
浏览文件 @
0fbaf95f
...
...
@@ -439,7 +439,7 @@ module API
end
# Check for available deploy keys in other projects
key
=
current_user
.
owned
_deploy_keys
.
find_by_key
(
attrs
[
:key
])
key
=
current_user
.
accessible
_deploy_keys
.
find_by_key
(
attrs
[
:key
])
if
key
user_project
.
deploy_keys
<<
key
present
key
,
with:
Entities
::
SSHKey
...
...
spec/models/user_spec.rb
浏览文件 @
0fbaf95f
...
...
@@ -106,11 +106,33 @@ describe User do
ActiveRecord
::
Base
.
observers
.
enable
(
:user_observer
)
@user
=
create
:user
@project
=
create
:project
,
namespace:
@user
.
namespace
@project_2
=
create
:project
# Grant MASTER access to the user
@project_3
=
create
:project
# Grant DEVELOPER access to the user
UsersProject
.
add_users_into_projects
(
[
@project_2
.
id
],
[
@user
.
id
],
UsersProject
::
MASTER
)
UsersProject
.
add_users_into_projects
(
[
@project_3
.
id
],
[
@user
.
id
],
UsersProject
::
DEVELOPER
)
end
it
{
@user
.
authorized_projects
.
should
include
(
@project
)
}
it
{
@user
.
authorized_projects
.
should
include
(
@project_2
)
}
it
{
@user
.
authorized_projects
.
should
include
(
@project_3
)
}
it
{
@user
.
owned_projects
.
should
include
(
@project
)
}
it
{
@user
.
owned_projects
.
should_not
include
(
@project_2
)
}
it
{
@user
.
owned_projects
.
should_not
include
(
@project_3
)
}
it
{
@user
.
personal_projects
.
should
include
(
@project
)
}
it
{
@user
.
personal_projects
.
should_not
include
(
@project_2
)
}
it
{
@user
.
personal_projects
.
should_not
include
(
@project_3
)
}
# master_projects doesn't check creator/namespace.
# In real case the users_projects relation will certainly be assigned
# when the project is created.
it
{
@user
.
master_projects
.
should_not
include
(
@project
)
}
it
{
@user
.
master_projects
.
should
include
(
@project_2
)
}
it
{
@user
.
master_projects
.
should_not
include
(
@project_3
)
}
end
describe
'groups'
do
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录