Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
969de4c1
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,发现更多精彩内容 >>
提交
969de4c1
编写于
2月 25, 2015
作者:
D
Douwe Maan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix EmailsOnPush to allow sending from @company.com for GitLab at gitlab.corp.company.com.
上级
5d863321
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
41 addition
and
5 deletion
+41
-5
app/mailers/notify.rb
app/mailers/notify.rb
+16
-1
spec/mailers/notify_spec.rb
spec/mailers/notify_spec.rb
+25
-4
未找到文件。
app/mailers/notify.rb
浏览文件 @
969de4c1
...
@@ -34,6 +34,20 @@ class Notify < ActionMailer::Base
...
@@ -34,6 +34,20 @@ class Notify < ActionMailer::Base
)
)
end
end
# Splits "gitlab.corp.company.com" up into "gitlab.corp.company.com",
# "corp.company.com" and "company.com".
# Respects set tld length so "company.co.uk" won't match "somethingelse.uk"
def
self
.
allowed_email_domains
domain_parts
=
Gitlab
.
config
.
gitlab
.
host
.
split
(
"."
)
allowed_domains
=
[]
begin
allowed_domains
<<
domain_parts
.
join
(
"."
)
domain_parts
.
shift
end
while
domain_parts
.
length
>
ActionDispatch
::
Http
::
URL
.
tld_length
allowed_domains
end
private
private
# The default email address to send emails from
# The default email address to send emails from
...
@@ -50,7 +64,8 @@ class Notify < ActionMailer::Base
...
@@ -50,7 +64,8 @@ class Notify < ActionMailer::Base
address
=
default_sender_address
address
=
default_sender_address
address
.
display_name
=
sender
.
name
address
.
display_name
=
sender
.
name
if
send_from_user_email
&&
sender
.
email
.
end_with?
(
"@
#{
Gitlab
.
config
.
gitlab
.
host
}
"
)
sender_domain
=
sender
.
email
.
split
(
"@"
).
last
if
send_from_user_email
&&
self
.
class
.
allowed_email_domains
.
include?
(
sender_domain
)
address
.
address
=
sender
.
email
address
.
address
=
sender
.
email
end
end
...
...
spec/mailers/notify_spec.rb
浏览文件 @
969de4c1
...
@@ -607,11 +607,14 @@ describe Notify do
...
@@ -607,11 +607,14 @@ describe Notify do
let
(
:send_from_committer_email
)
{
true
}
let
(
:send_from_committer_email
)
{
true
}
context
"when the committer email domain matches"
do
before
do
allow
(
Gitlab
.
config
.
gitlab
).
to
receive
(
:host
).
and_return
(
"gitlab.corp.company.com"
)
end
context
"when the committer email domain is within the GitLab domain"
do
before
do
before
do
allow
(
Gitlab
.
config
.
gitlab
).
to
receive
(
:host
).
and_return
(
"gitlab.dev"
)
user
.
update_attribute
(
:email
,
"user@company.com"
)
user
.
update_attribute
(
:email
,
"user@
#{
Gitlab
.
config
.
gitlab
.
host
}
"
)
user
.
confirm!
user
.
confirm!
end
end
...
@@ -621,7 +624,25 @@ describe Notify do
...
@@ -621,7 +624,25 @@ describe Notify do
end
end
end
end
context
"when the committer email doesn't match"
do
context
"when the committer email domain is not completely within the GitLab domain"
do
before
do
user
.
update_attribute
(
:email
,
"user@something.company.com"
)
user
.
confirm!
end
it
"is sent from the default email"
do
sender
=
subject
.
header
[
:from
].
addrs
[
0
]
expect
(
sender
.
address
).
to
eq
(
gitlab_sender
)
end
end
context
"when the committer email domain is outside the GitLab domain"
do
before
do
user
.
update_attribute
(
:email
,
"user@mpany.com"
)
user
.
confirm!
end
it
"is sent from the default email"
do
it
"is sent from the default email"
do
sender
=
subject
.
header
[
:from
].
addrs
[
0
]
sender
=
subject
.
header
[
:from
].
addrs
[
0
]
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录