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
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
gitlab-ce
Commits
8184a656
Commit
8184a656
authored
Feb 19, 2015
by
Dmitriy Zaporozhets
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Revert "Fix broken access control and refactor avatar upload"
This reverts commit
7d5f86f6
.
parent
7c3147e6
Changes
13
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
27 additions
and
90 deletions
+27
-90
app/controllers/files_controller.rb
app/controllers/files_controller.rb
+1
-3
app/models/group.rb
app/models/group.rb
+1
-1
app/models/project.rb
app/models/project.rb
+1
-1
app/models/user.rb
app/models/user.rb
+1
-1
app/uploaders/attachment_uploader.rb
app/uploaders/attachment_uploader.rb
+7
-1
app/uploaders/avatar_uploader.rb
app/uploaders/avatar_uploader.rb
+0
-32
db/migrate/20150213111727_move_note_folder.rb
db/migrate/20150213111727_move_note_folder.rb
+0
-19
features/steps/groups.rb
features/steps/groups.rb
+1
-1
features/steps/profile/profile.rb
features/steps/profile/profile.rb
+1
-1
features/steps/project/project.rb
features/steps/project/project.rb
+1
-1
lib/backup/manager.rb
lib/backup/manager.rb
+1
-1
lib/backup/uploads.rb
lib/backup/uploads.rb
+12
-28
uploads/.gitkeep
uploads/.gitkeep
+0
-0
No files found.
app/controllers/files_controller.rb
View file @
8184a656
...
...
@@ -6,9 +6,7 @@ class FilesController < ApplicationController
if
uploader
.
file_storage?
if
can?
(
current_user
,
:read_project
,
note
.
project
)
disposition
=
uploader
.
image?
?
'inline'
:
'attachment'
# Replace old notes location in /public with the new one in / and send the file
path
=
uploader
.
file
.
path
.
gsub
(
"
#{
Rails
.
root
}
/public"
,
Rails
.
root
.
to_s
)
send_file
path
,
disposition:
disposition
send_file
uploader
.
file
.
path
,
disposition:
disposition
else
not_found!
end
...
...
app/models/group.rb
View file @
8184a656
...
...
@@ -23,7 +23,7 @@ class Group < Namespace
validate
:avatar_type
,
if:
->
(
user
)
{
user
.
avatar_changed?
}
validates
:avatar
,
file_size:
{
maximum:
200
.
kilobytes
.
to_i
}
mount_uploader
:avatar
,
A
vatar
Uploader
mount_uploader
:avatar
,
A
ttachment
Uploader
after_create
:post_create_hook
after_destroy
:post_destroy_hook
...
...
app/models/project.rb
View file @
8184a656
...
...
@@ -138,7 +138,7 @@ class Project < ActiveRecord::Base
if:
->
(
project
)
{
project
.
avatar
&&
project
.
avatar_changed?
}
validates
:avatar
,
file_size:
{
maximum:
200
.
kilobytes
.
to_i
}
mount_uploader
:avatar
,
A
vatar
Uploader
mount_uploader
:avatar
,
A
ttachment
Uploader
# Scopes
scope
:sorted_by_activity
,
->
{
reorder
(
last_activity_at: :desc
)
}
...
...
app/models/user.rb
View file @
8184a656
...
...
@@ -177,7 +177,7 @@ class User < ActiveRecord::Base
end
end
mount_uploader
:avatar
,
A
vatar
Uploader
mount_uploader
:avatar
,
A
ttachment
Uploader
# Scopes
scope
:admins
,
->
{
where
(
admin:
true
)
}
...
...
app/uploaders/attachment_uploader.rb
View file @
8184a656
...
...
@@ -3,8 +3,10 @@
class
AttachmentUploader
<
CarrierWave
::
Uploader
::
Base
storage
:file
after
:store
,
:reset_events_cache
def
store_dir
"
#{
Rails
.
root
}
/
uploads/
#{
model
.
class
.
to_s
.
underscore
}
/
#{
mounted_as
}
/
#{
model
.
id
}
"
"uploads/
#{
model
.
class
.
to_s
.
underscore
}
/
#{
mounted_as
}
/
#{
model
.
id
}
"
end
def
image?
...
...
@@ -27,4 +29,8 @@ class AttachmentUploader < CarrierWave::Uploader::Base
def
file_storage?
self
.
class
.
storage
==
CarrierWave
::
Storage
::
File
end
def
reset_events_cache
(
file
)
model
.
reset_events_cache
if
model
.
is_a?
(
User
)
end
end
app/uploaders/avatar_uploader.rb
deleted
100644 → 0
View file @
7c3147e6
# encoding: utf-8
class
AvatarUploader
<
CarrierWave
::
Uploader
::
Base
storage
:file
after
:store
,
:reset_events_cache
def
store_dir
"uploads/
#{
model
.
class
.
to_s
.
underscore
}
/
#{
mounted_as
}
/
#{
model
.
id
}
"
end
def
image?
img_ext
=
%w(png jpg jpeg gif bmp tiff)
if
file
.
respond_to?
(
:extension
)
img_ext
.
include?
(
file
.
extension
.
downcase
)
else
# Not all CarrierWave storages respond to :extension
ext
=
file
.
path
.
split
(
'.'
).
last
.
downcase
img_ext
.
include?
(
ext
)
end
rescue
false
end
def
file_storage?
self
.
class
.
storage
==
CarrierWave
::
Storage
::
File
end
def
reset_events_cache
(
file
)
model
.
reset_events_cache
if
model
.
is_a?
(
User
)
end
end
db/migrate/20150213111727_move_note_folder.rb
deleted
100644 → 0
View file @
7c3147e6
class
MoveNoteFolder
<
ActiveRecord
::
Migration
def
up
system
(
"if [ -d '
#{
Rails
.
root
}
/public/uploads/note' ];
then mv
#{
Rails
.
root
}
/public/uploads/note
#{
Rails
.
root
}
/uploads/note;
echo 'note folder has been moved successfully';
else
echo 'note folder has already been moved or does not exist yet. Nothing to do here.'; fi"
)
end
def
down
system
(
"if [ -d '
#{
Rails
.
root
}
/uploads/note' ];
then mv
#{
Rails
.
root
}
/uploads/note
#{
Rails
.
root
}
/public/uploads/note;
echo 'note folder has been moved successfully';
else
echo 'note folder has already been moved or does not exist yet. Nothing to do here.'; fi"
)
end
end
features/steps/groups.rb
View file @
8184a656
...
...
@@ -110,7 +110,7 @@ class Spinach::Features::Groups < Spinach::FeatureSteps
end
step
'I should see new group "Owned" avatar'
do
Group
.
find_by
(
name:
"Owned"
).
avatar
.
should
be_instance_of
A
vatar
Uploader
Group
.
find_by
(
name:
"Owned"
).
avatar
.
should
be_instance_of
A
ttachment
Uploader
Group
.
find_by
(
name:
"Owned"
).
avatar
.
url
.
should
==
"/uploads/group/avatar/
#{
Group
.
find_by
(
name
:"Owned"
).
id
}
/gitlab_logo.png"
end
...
...
features/steps/profile/profile.rb
View file @
8184a656
...
...
@@ -29,7 +29,7 @@ class Spinach::Features::Profile < Spinach::FeatureSteps
end
step
'I should see new avatar'
do
@user
.
avatar
.
should
be_instance_of
A
vatar
Uploader
@user
.
avatar
.
should
be_instance_of
A
ttachment
Uploader
@user
.
avatar
.
url
.
should
==
"/uploads/user/avatar/
#{
@user
.
id
}
/gitlab_logo.png"
end
...
...
features/steps/project/project.rb
View file @
8184a656
...
...
@@ -35,7 +35,7 @@ class Spinach::Features::Project < Spinach::FeatureSteps
end
step
'I should see new project avatar'
do
@project
.
avatar
.
should
be_instance_of
A
vatar
Uploader
@project
.
avatar
.
should
be_instance_of
A
ttachment
Uploader
url
=
@project
.
avatar
.
url
url
.
should
==
"/uploads/project/avatar/
#{
@project
.
id
}
/gitlab_logo.png"
end
...
...
lib/backup/manager.rb
View file @
8184a656
module
Backup
class
Manager
BACKUP_CONTENTS
=
%w{repositories/ db/
public/
uploads/ backup_information.yml}
BACKUP_CONTENTS
=
%w{repositories/ db/ uploads/ backup_information.yml}
def
pack
# saving additional informations
...
...
lib/backup/uploads.rb
View file @
8184a656
module
Backup
class
Uploads
attr_reader
:app_public_uploads_dir
,
:app_private_uploads_dir
,
:backup_public_uploads_dir
,
:backup_private_uploads_dir
,
:backup_dir
,
:backup_public_dir
attr_reader
:app_uploads_dir
,
:backup_uploads_dir
,
:backup_dir
def
initialize
@app_public_uploads_dir
=
File
.
realpath
(
Rails
.
root
.
join
(
'public'
,
'uploads'
))
@app_private_uploads_dir
=
File
.
realpath
(
Rails
.
root
.
join
(
'uploads'
))
@app_uploads_dir
=
File
.
realpath
(
Rails
.
root
.
join
(
'public'
,
'uploads'
))
@backup_dir
=
Gitlab
.
config
.
backup
.
path
@backup_public_dir
=
File
.
join
(
backup_dir
,
'public'
)
@backup_public_uploads_dir
=
File
.
join
(
backup_dir
,
'public'
,
'uploads'
)
@backup_private_uploads_dir
=
File
.
join
(
backup_dir
,
'uploads'
)
@backup_uploads_dir
=
File
.
join
(
Gitlab
.
config
.
backup
.
path
,
'uploads'
)
end
# Copy uploads from public/uploads to backup/
public/uploads and from /uploads to backup/
uploads
# Copy uploads from public/uploads to backup/uploads
def
dump
FileUtils
.
mkdir_p
(
backup_public_uploads_dir
)
FileUtils
.
cp_r
(
app_public_uploads_dir
,
backup_public_dir
)
FileUtils
.
mkdir_p
(
backup_private_uploads_dir
)
FileUtils
.
cp_r
(
app_private_uploads_dir
,
backup_dir
)
FileUtils
.
mkdir_p
(
backup_uploads_dir
)
FileUtils
.
cp_r
(
app_uploads_dir
,
backup_dir
)
end
def
restore
backup_existing_public_uploads_dir
backup_existing_private_uploads_dir
FileUtils
.
cp_r
(
backup_public_uploads_dir
,
app_public_uploads_dir
)
FileUtils
.
cp_r
(
backup_private_uploads_dir
,
app_private_uploads_dir
)
end
backup_existing_uploads_dir
def
backup_existing_public_uploads_dir
timestamped_public_uploads_path
=
File
.
join
(
app_public_uploads_dir
,
'..'
,
"uploads.
#{
Time
.
now
.
to_i
}
"
)
if
File
.
exists?
(
app_public_uploads_dir
)
FileUtils
.
mv
(
app_public_uploads_dir
,
timestamped_public_uploads_path
)
end
FileUtils
.
cp_r
(
backup_uploads_dir
,
app_uploads_dir
)
end
def
backup_existing_
private_
uploads_dir
timestamped_
private_uploads_path
=
File
.
join
(
app_private
_uploads_dir
,
'..'
,
"uploads.
#{
Time
.
now
.
to_i
}
"
)
if
File
.
exists?
(
app_
private_
uploads_dir
)
FileUtils
.
mv
(
app_
private_uploads_dir
,
timestamped_private
_uploads_path
)
def
backup_existing_uploads_dir
timestamped_
uploads_path
=
File
.
join
(
app
_uploads_dir
,
'..'
,
"uploads.
#{
Time
.
now
.
to_i
}
"
)
if
File
.
exists?
(
app_uploads_dir
)
FileUtils
.
mv
(
app_
uploads_dir
,
timestamped
_uploads_path
)
end
end
end
...
...
uploads/.gitkeep
deleted
100644 → 0
View file @
7c3147e6
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