Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
4beae793
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,发现更多精彩内容 >>
提交
4beae793
编写于
1月 09, 2017
作者:
D
Douwe Maan
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'remove-project-authorizations-id-column' into 'master'
Remove the project_authorizations.id column See merge request !8479
上级
c8f53f0e
de321fbb
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
33 addition
and
16 deletion
+33
-16
app/models/project.rb
app/models/project.rb
+1
-1
app/models/user.rb
app/models/user.rb
+2
-2
app/services/users/refresh_authorized_projects_service.rb
app/services/users/refresh_authorized_projects_service.rb
+2
-2
changelogs/unreleased/remove-project-authorizations-id-column.yml
...gs/unreleased/remove-project-authorizations-id-column.yml
+4
-0
db/post_migrate/20170106172224_remove_project_authorizations_id_column.rb
...20170106172224_remove_project_authorizations_id_column.rb
+12
-0
db/schema.rb
db/schema.rb
+3
-3
spec/services/users/refresh_authorized_projects_service_spec.rb
...ervices/users/refresh_authorized_projects_service_spec.rb
+9
-8
未找到文件。
app/models/project.rb
浏览文件 @
4beae793
...
...
@@ -130,7 +130,7 @@ class Project < ActiveRecord::Base
has_many
:hooks
,
dependent: :destroy
,
class_name:
'ProjectHook'
has_many
:protected_branches
,
dependent: :destroy
has_many
:project_authorizations
,
dependent: :destroy
has_many
:project_authorizations
has_many
:authorized_users
,
through: :project_authorizations
,
source: :user
,
class_name:
'User'
has_many
:project_members
,
->
{
where
(
requested_at:
nil
)
},
dependent: :destroy
,
as: :source
alias_method
:members
,
:project_members
...
...
app/models/user.rb
浏览文件 @
4beae793
...
...
@@ -73,7 +73,7 @@ class User < ActiveRecord::Base
has_many
:created_projects
,
foreign_key: :creator_id
,
class_name:
'Project'
has_many
:users_star_projects
,
dependent: :destroy
has_many
:starred_projects
,
through: :users_star_projects
,
source: :project
has_many
:project_authorizations
,
dependent: :destroy
has_many
:project_authorizations
has_many
:authorized_projects
,
through: :project_authorizations
,
source: :project
has_many
:snippets
,
dependent: :destroy
,
foreign_key: :author_id
...
...
@@ -444,7 +444,7 @@ class User < ActiveRecord::Base
end
def
remove_project_authorizations
(
project_ids
)
project_authorizations
.
where
(
id:
project_ids
).
delete_all
project_authorizations
.
where
(
project_
id:
project_ids
).
delete_all
end
def
set_authorized_projects_column
...
...
app/services/users/refresh_authorized_projects_service.rb
浏览文件 @
4beae793
...
...
@@ -35,7 +35,7 @@ module Users
# rows not in the new list or with a different access level should be
# removed.
if
!
fresh
[
project_id
]
||
fresh
[
project_id
]
!=
row
.
access_level
array
<<
row
.
id
array
<<
row
.
project_
id
end
end
...
...
@@ -100,7 +100,7 @@ module Users
end
def
current_authorizations
user
.
project_authorizations
.
select
(
:
id
,
:
project_id
,
:access_level
)
user
.
project_authorizations
.
select
(
:project_id
,
:access_level
)
end
def
fresh_authorizations
...
...
changelogs/unreleased/remove-project-authorizations-id-column.yml
0 → 100644
浏览文件 @
4beae793
---
title
:
Remove the project_authorizations.id column
merge_request
:
author
:
db/post_migrate/20170106172224_remove_project_authorizations_id_column.rb
0 → 100644
浏览文件 @
4beae793
# See http://doc.gitlab.com/ce/development/migration_style_guide.html
# for more information on how to write migrations for GitLab.
class
RemoveProjectAuthorizationsIdColumn
<
ActiveRecord
::
Migration
include
Gitlab
::
Database
::
MigrationHelpers
DOWNTIME
=
false
def
change
remove_column
:project_authorizations
,
:id
,
:primary_key
end
end
db/schema.rb
浏览文件 @
4beae793
...
...
@@ -11,7 +11,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord
::
Schema
.
define
(
version:
201
61227192806
)
do
ActiveRecord
::
Schema
.
define
(
version:
201
70106172224
)
do
# These are extensions that must be enabled in order to support this database
enable_extension
"plpgsql"
...
...
@@ -862,7 +862,7 @@ ActiveRecord::Schema.define(version: 20161227192806) do
add_index
"personal_access_tokens"
,
[
"token"
],
name:
"index_personal_access_tokens_on_token"
,
unique:
true
,
using: :btree
add_index
"personal_access_tokens"
,
[
"user_id"
],
name:
"index_personal_access_tokens_on_user_id"
,
using: :btree
create_table
"project_authorizations"
,
force: :cascade
do
|
t
|
create_table
"project_authorizations"
,
id:
false
,
force: :cascade
do
|
t
|
t
.
integer
"user_id"
t
.
integer
"project_id"
t
.
integer
"access_level"
...
...
@@ -1307,4 +1307,4 @@ ActiveRecord::Schema.define(version: 20161227192806) do
add_foreign_key
"subscriptions"
,
"projects"
,
on_delete: :cascade
add_foreign_key
"trending_projects"
,
"projects"
,
on_delete: :cascade
add_foreign_key
"u2f_registrations"
,
"users"
end
\ No newline at end of file
end
spec/services/users/refresh_authorized_projects_service_spec.rb
浏览文件 @
4beae793
...
...
@@ -20,7 +20,7 @@ describe Users::RefreshAuthorizedProjectsService do
to_remove
=
create_authorization
(
project2
,
user
)
expect
(
service
).
to
receive
(
:update_with_lease
).
with
([
to_remove
.
id
],
[[
user
.
id
,
project
.
id
,
Gitlab
::
Access
::
MASTER
]])
with
([
to_remove
.
project_
id
],
[[
user
.
id
,
project
.
id
,
Gitlab
::
Access
::
MASTER
]])
service
.
execute
end
...
...
@@ -29,7 +29,7 @@ describe Users::RefreshAuthorizedProjectsService do
to_remove
=
create_authorization
(
project
,
user
,
Gitlab
::
Access
::
DEVELOPER
)
expect
(
service
).
to
receive
(
:update_with_lease
).
with
([
to_remove
.
id
],
[[
user
.
id
,
project
.
id
,
Gitlab
::
Access
::
MASTER
]])
with
([
to_remove
.
project_
id
],
[[
user
.
id
,
project
.
id
,
Gitlab
::
Access
::
MASTER
]])
service
.
execute
end
...
...
@@ -90,7 +90,7 @@ describe Users::RefreshAuthorizedProjectsService do
it
'removes authorizations that should be removed'
do
authorization
=
create_authorization
(
project
,
user
)
service
.
update_authorizations
([
authorization
.
id
])
service
.
update_authorizations
([
authorization
.
project_
id
])
expect
(
user
.
project_authorizations
).
to
be_empty
end
...
...
@@ -147,7 +147,12 @@ describe Users::RefreshAuthorizedProjectsService do
end
it
'sets the values to the project authorization rows'
do
expect
(
hash
.
values
).
to
eq
([
ProjectAuthorization
.
first
])
expect
(
hash
.
values
.
length
).
to
eq
(
1
)
value
=
hash
.
values
[
0
]
expect
(
value
.
project_id
).
to
eq
(
project
.
id
)
expect
(
value
.
access_level
).
to
eq
(
Gitlab
::
Access
::
MASTER
)
end
end
...
...
@@ -167,10 +172,6 @@ describe Users::RefreshAuthorizedProjectsService do
expect
(
service
.
current_authorizations
.
length
).
to
eq
(
1
)
end
it
'includes the row ID for every row'
do
expect
(
row
.
id
).
to
be_a_kind_of
(
Numeric
)
end
it
'includes the project ID for every row'
do
expect
(
row
.
project_id
).
to
eq
(
project
.
id
)
end
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录