Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
5f95a5e0
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,发现更多精彩内容 >>
提交
5f95a5e0
编写于
9月 28, 2015
作者:
R
Rémy Coutable
提交者:
rymai
9月 29, 2015
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Disable the "Report abuse" button if a user has already been reported
上级
10c036fc
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
73 addition
and
9 deletion
+73
-9
app/helpers/user_helper.rb
app/helpers/user_helper.rb
+11
-0
app/models/user.rb
app/models/user.rb
+2
-0
app/views/users/show.html.haml
app/views/users/show.html.haml
+11
-7
features/abuse_report.feature
features/abuse_report.feature
+7
-0
features/steps/abuse_reports.rb
features/steps/abuse_reports.rb
+5
-0
spec/features/users_spec.rb
spec/features/users_spec.rb
+36
-2
spec/models/user_spec.rb
spec/models/user_spec.rb
+1
-0
未找到文件。
app/helpers/user_helper.rb
0 → 100644
浏览文件 @
5f95a5e0
module
UserHelper
def
abuse_report_button_title
(
user
)
if
user
.
abuse_report
"
#{
user
.
username
}
has already been reported for abuse."
else
"Report
#{
user
.
username
}
for abuse."
end
end
end
app/models/user.rb
浏览文件 @
5f95a5e0
...
...
@@ -97,7 +97,9 @@ class User < ActiveRecord::Base
# Namespace for personal projects
has_one
:namespace
,
->
{
where
type:
nil
},
dependent: :destroy
,
foreign_key: :owner_id
,
class_name:
"Namespace"
# Profile
has_one
:abuse_report
,
dependent: :destroy
has_many
:keys
,
dependent: :destroy
has_many
:emails
,
dependent: :destroy
has_many
:identities
,
dependent: :destroy
,
autosave:
true
...
...
app/views/users/show.html.haml
浏览文件 @
5f95a5e0
...
...
@@ -19,14 +19,18 @@
=
icon
(
'user'
)
Profile settings
-
elsif
current_user
.pull-right
#report_abuse
.pull-right
%span
.dropdown
%a
.light.dropdown-toggle.btn.btn-sm
{
href:
'#'
,
"data-toggle"
=>
"dropdown"
}
=
icon
(
'exclamation-circle'
)
%ul
.dropdown-menu.dropdown-menu-right
%li
=
link_to
new_abuse_report_path
(
user_id:
@user
.
id
)
do
Report abuse
-
if
@user
.
abuse_report
%span
.light.dropdown-toggle.btn.btn-sm.btn-close
{
title:
abuse_report_button_title
(
@user
)}
=
icon
(
'exclamation-circle'
)
-
else
%a
.light.dropdown-toggle.btn.btn-sm
{
href:
'#'
,
"data-toggle"
=>
"dropdown"
}
=
icon
(
'exclamation-circle'
)
%ul
.dropdown-menu.dropdown-menu-right
%li
=
link_to
new_abuse_report_path
(
user_id:
@user
.
id
),
title:
abuse_report_button_title
(
@user
)
do
Report abuse
.username
@
#{
@user
.
username
}
...
...
features/abuse_report.feature
浏览文件 @
5f95a5e0
...
...
@@ -8,3 +8,10 @@ Feature: Abuse reports
And
I click
"Report abuse"
button
When
I fill and submit abuse form
Then
I should see success message
Scenario
:
Report abuse available only once
Given
I visit
"Mike"
user page
And
I click
"Report abuse"
button
When
I fill and submit abuse form
And
I visit
"Mike"
user page
Then
I should not see the
"Remove abuse"
dropdown / button
features/steps/abuse_reports.rb
浏览文件 @
5f95a5e0
...
...
@@ -22,6 +22,11 @@ class Spinach::Features::AbuseReports < Spinach::FeatureSteps
user_mike
end
step
'I should not see the "Remove abuse" dropdown / button'
do
expect
(
find
(
:css
,
'#report_abuse'
)).
not_to
have_selector
(
:css
,
'ul.dropdown-menu'
)
expect
(
find
(
:css
,
'#report_abuse'
)).
to
have_selector
(
:css
,
'.btn-close'
)
end
def
user_mike
@user_mike
||=
create
(
:user
,
name:
'Mike'
)
end
...
...
spec/features/users_spec.rb
浏览文件 @
5f95a5e0
require
'spec_helper'
feature
'Users'
,
feature:
true
do
let
(
:user
)
{
create
(
:user
,
username:
'user1'
,
name:
'User 1'
,
email:
'user1@gitlab.com'
)
}
let
(
:user2
)
{
create
(
:user
,
username:
'user2'
,
name:
'User 2'
,
email:
'user2@gitlab.com'
)
}
scenario
'GET /users/sign_in creates a new user account'
do
visit
new_user_session_path
fill_in
'user_name'
,
with:
'Name Surname'
...
...
@@ -11,7 +14,6 @@ feature 'Users', feature: true do
end
scenario
'Successful user signin invalidates password reset token'
do
user
=
create
(
:user
)
expect
(
user
.
reset_password_token
).
to
be_nil
visit
new_user_password_path
...
...
@@ -28,7 +30,6 @@ feature 'Users', feature: true do
expect
(
user
.
reset_password_token
).
to
be_nil
end
let!
(
:user
)
{
create
(
:user
,
username:
'user1'
,
name:
'User 1'
,
email:
'user1@gitlab.com'
)
}
scenario
'Should show one error if email is already taken'
do
visit
new_user_session_path
fill_in
'user_name'
,
with:
'Another user name'
...
...
@@ -48,4 +49,37 @@ feature 'Users', feature: true do
page
.
find
(
'#error_explanation'
).
find
(
'ul'
).
all
(
'li'
).
count
end
context
'With a logged-in user'
do
before
do
login_as
(
user
)
end
describe
'Abuse report button'
do
context
'User has never been reported for abuse'
do
it
'enables the "Report abuse" button / dropdown'
do
visit
user_path
(
user2
)
expect
(
page
.
find
(
'#report_abuse'
).
find
(
'ul.dropdown-menu'
).
all
(
'li'
).
count
).
to
be
(
1
)
expect
(
page
.
find
(
'#report_abuse'
).
all
(
'.btn-close'
).
count
).
to
be
(
0
)
end
end
context
'User has already been reported for abuse'
do
before
do
@abuse_report
=
AbuseReport
.
new
(
user:
user2
,
message:
'Foo bar'
)
@abuse_report
.
reporter
=
user
@abuse_report
.
save!
end
it
'disables the "Report abuse" button'
do
visit
user_path
(
user2
)
expect
(
page
.
find
(
'#report_abuse'
).
all
(
'ul.dropdown-menu'
).
count
).
to
be
(
0
)
expect
(
page
.
find
(
'#report_abuse'
).
all
(
'.btn-close'
).
count
).
to
be
(
1
)
end
end
end
end
end
spec/models/user_spec.rb
浏览文件 @
5f95a5e0
...
...
@@ -73,6 +73,7 @@ describe User do
describe
'associations'
do
it
{
is_expected
.
to
have_one
(
:namespace
)
}
it
{
is_expected
.
to
have_one
(
:abuse_report
)
}
it
{
is_expected
.
to
have_many
(
:snippets
).
class_name
(
'Snippet'
).
dependent
(
:destroy
)
}
it
{
is_expected
.
to
have_many
(
:project_members
).
dependent
(
:destroy
)
}
it
{
is_expected
.
to
have_many
(
:groups
)
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录