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
Boxiang Sun
gitlab-ce
Commits
0c866f4a
Commit
0c866f4a
authored
May 03, 2017
by
Michael Kozono
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Resolve discussions
parent
fc061c2e
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
42 additions
and
23 deletions
+42
-23
app/controllers/users_controller.rb
app/controllers/users_controller.rb
+10
-8
app/models/route.rb
app/models/route.rb
+11
-11
app/models/user.rb
app/models/user.rb
+1
-1
db/migrate/20170503184421_add_index_to_redirect_routes.rb
db/migrate/20170503184421_add_index_to_redirect_routes.rb
+2
-3
spec/controllers/users_controller_spec.rb
spec/controllers/users_controller_spec.rb
+18
-0
No files found.
app/controllers/users_controller.rb
View file @
0c866f4a
...
...
@@ -3,7 +3,6 @@ class UsersController < ApplicationController
skip_before_action
:authenticate_user!
before_action
:user
,
except:
[
:exists
]
before_action
:authorize_read_user!
,
except:
[
:exists
]
def
show
respond_to
do
|
format
|
...
...
@@ -93,14 +92,17 @@ class UsersController < ApplicationController
private
def
authorize_read_user!
render_404
unless
can?
(
current_user
,
:read_user
,
user
)
ensure_canonical_path
(
user
.
namespace
,
params
[
:username
])
end
def
user
@user
||=
User
.
find_by_full_path
(
params
[
:username
],
follow_redirects:
true
)
return
@user
if
@user
@user
=
User
.
find_by_full_path
(
params
[
:username
],
follow_redirects:
true
)
return
render_404
unless
@user
return
render_404
unless
can?
(
current_user
,
:read_user
,
@user
)
ensure_canonical_path
(
@user
.
namespace
,
params
[
:username
])
@user
end
def
contributed_projects
...
...
app/models/route.rb
View file @
0c866f4a
...
...
@@ -16,22 +16,22 @@ class Route < ActiveRecord::Base
scope
:direct_descendant_routes
,
->
(
path
)
{
where
(
'routes.path LIKE ? AND routes.path NOT LIKE ?'
,
"
#{
sanitize_sql_like
(
path
)
}
/%"
,
"
#{
sanitize_sql_like
(
path
)
}
/%/%"
)
}
def
rename_direct_descendant_routes
if
path_changed?
||
name_changed?
direct_descendant_routes
=
self
.
class
.
direct_descendant_routes
(
path_was
)
return
if
!
path_changed?
&&
!
name_changed?
direct_descendant_routes
.
each
do
|
route
|
attributes
=
{}
direct_descendant_routes
=
self
.
class
.
direct_descendant_routes
(
path_was
)
if
path_changed?
&&
route
.
path
.
present?
attributes
[
:path
]
=
route
.
path
.
sub
(
path_was
,
path
)
end
direct_descendant_routes
.
each
do
|
route
|
attributes
=
{}
if
name_changed?
&&
name_was
.
present?
&&
route
.
name
.
present?
attributes
[
:name
]
=
route
.
name
.
sub
(
name_was
,
name
)
end
if
path_changed?
&&
route
.
path
.
present?
attributes
[
:path
]
=
route
.
path
.
sub
(
path_was
,
path
)
end
route
.
update
(
attributes
)
unless
attributes
.
empty?
if
name_changed?
&&
name_was
.
present?
&&
route
.
name
.
present?
attributes
[
:name
]
=
route
.
name
.
sub
(
name_was
,
name
)
end
route
.
update
(
attributes
)
unless
attributes
.
empty?
end
end
...
...
app/models/user.rb
View file @
0c866f4a
...
...
@@ -335,7 +335,7 @@ class User < ActiveRecord::Base
def
find_by_full_path
(
path
,
follow_redirects:
false
)
namespace
=
Namespace
.
find_by_full_path
(
path
,
follow_redirects:
follow_redirects
)
namespace
.
owner
if
namespace
&&
namespace
.
owner
namespace
&
.
owner
end
def
reference_prefix
...
...
db/migrate/20170503184421_add_index_to_redirect_routes.rb
View file @
0c866f4a
# See http://doc.gitlab.com/ce/development/migration_style_guide.html
# for more information on how to write migrations for GitLab.
# rubocop:disable RemoveIndex
class
AddIndexToRedirectRoutes
<
ActiveRecord
::
Migration
include
Gitlab
::
Database
::
MigrationHelpers
...
...
@@ -16,7 +15,7 @@ class AddIndexToRedirectRoutes < ActiveRecord::Migration
end
def
down
remove_index
(
:redirect_routes
,
:path
)
if
index_exists?
(
:redirect_routes
,
:path
)
remove_index
(
:redirect_routes
,
[
:source_type
,
:source_id
])
if
index_exists?
(
:redirect_routes
,
[
:source_type
,
:source_id
])
remove_
concurrent_
index
(
:redirect_routes
,
:path
)
if
index_exists?
(
:redirect_routes
,
:path
)
remove_
concurrent_
index
(
:redirect_routes
,
[
:source_type
,
:source_id
])
if
index_exists?
(
:redirect_routes
,
[
:source_type
,
:source_id
])
end
end
spec/controllers/users_controller_spec.rb
View file @
0c866f4a
...
...
@@ -84,6 +84,24 @@ describe UsersController do
expect
(
response
).
to
redirect_to
(
user
)
end
end
context
'when a user by that username does not exist'
do
context
'when logged out'
do
it
'renders 404 (does not redirect to login)'
do
get
:show
,
username:
'nonexistent'
expect
(
response
).
to
have_http_status
(
404
)
end
end
context
'when logged in'
do
before
{
sign_in
(
user
)
}
it
'renders 404'
do
get
:show
,
username:
'nonexistent'
expect
(
response
).
to
have_http_status
(
404
)
end
end
end
end
describe
'GET #calendar'
do
...
...
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