repository-manager 0.2.9 → 0.2.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/models/repository_manager/repo_file.rb +14 -12
- data/lib/repository_manager/has_repository.rb +10 -1
- data/lib/repository_manager/version.rb +1 -1
- data/spec/unzip_spec.rb +14 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9a5f9e1303f1c190997c2c901c476fa08b2d910c
|
4
|
+
data.tar.gz: a5c56d387625acf0a20fd17132c5efa9e957229a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0d73911fbb82113abd58dd547fcf29b8acdc287c590814157b2eae9804848282c7f4753a8921ef9f32a7f70e58134673ae33537bcf3c612cff7a09e67c516799
|
7
|
+
data.tar.gz: 18c2b1c8ff1197abce0b43ea492764911f5d3c054712ef0c4f666a68ba97fe036cf2d4fc151edabd0e37330f526c036c26c78985e34e017e486fe1d042b02d15
|
@@ -105,22 +105,23 @@ class RepositoryManager::RepoFile < RepositoryManager::RepoItem
|
|
105
105
|
new_item.owner = owner
|
106
106
|
new_item.sender = sender
|
107
107
|
if path_array.empty?
|
108
|
-
new_item.move!(source_folder: options[:source_folder], owner: owner, overwrite: overwrite)
|
108
|
+
new_item.move!(source_folder: options[:source_folder], owner: owner, sender: sender, overwrite: overwrite)
|
109
109
|
else
|
110
110
|
# He specified a source_folder
|
111
111
|
if options[:source_folder]
|
112
|
-
source_folder = options[:source_folder].get_or_create_by_path_array(path_array, owner:
|
112
|
+
source_folder = options[:source_folder].get_or_create_by_path_array(path_array, owner: owner, sender: sender)
|
113
113
|
else # No source folder specified
|
114
114
|
# We have to check if we are in a folder
|
115
|
-
|
115
|
+
parent = self.parent
|
116
|
+
if parent
|
116
117
|
# we unzip on this folder
|
117
|
-
source_folder = parent.get_or_create_by_path_array(path_array, owner:
|
118
|
+
source_folder = parent.get_or_create_by_path_array(path_array, owner: owner, sender: sender)
|
118
119
|
else
|
119
120
|
# We are in root
|
120
|
-
source_folder = owner.get_or_create_by_path_array(path_array, sender:
|
121
|
+
source_folder = owner.get_or_create_by_path_array(path_array, sender: sender)
|
121
122
|
end
|
122
123
|
end
|
123
|
-
new_item.move!(source_folder: source_folder, owner: owner, overwrite: overwrite)
|
124
|
+
new_item.move!(source_folder: source_folder, owner: owner, sender: sender, overwrite: overwrite)
|
124
125
|
end
|
125
126
|
else # it is a :file
|
126
127
|
new_item = RepositoryManager::RepoFile.new
|
@@ -136,22 +137,23 @@ class RepositoryManager::RepoFile < RepositoryManager::RepoItem
|
|
136
137
|
|
137
138
|
|
138
139
|
if path_array.empty?
|
139
|
-
new_item.move!(source_folder: options[:source_folder], owner: owner, overwrite: overwrite)
|
140
|
+
new_item.move!(source_folder: options[:source_folder], owner: owner, sender: sender, overwrite: overwrite)
|
140
141
|
else
|
141
142
|
# He specified a source_folder
|
142
143
|
if options[:source_folder]
|
143
|
-
source_folder = options[:source_folder].get_or_create_by_path_array(path_array, owner:
|
144
|
+
source_folder = options[:source_folder].get_or_create_by_path_array(path_array, owner: owner, sender: sender)
|
144
145
|
else # No source folder specified
|
145
146
|
# We have to check if we are in a folder
|
146
|
-
|
147
|
+
parent = self.parent
|
148
|
+
if parent
|
147
149
|
# we unzip on this folder
|
148
|
-
source_folder = parent.get_or_create_by_path_array(path_array, owner:
|
150
|
+
source_folder = parent.get_or_create_by_path_array(path_array, owner: owner, sender: sender)
|
149
151
|
else
|
150
152
|
# We are in root
|
151
|
-
source_folder = owner.get_or_create_by_path_array(path_array, sender:
|
153
|
+
source_folder = owner.get_or_create_by_path_array(path_array, owner: owner, sender: sender)
|
152
154
|
end
|
153
155
|
end
|
154
|
-
new_item.move!(source_folder: source_folder, owner: owner, overwrite: overwrite)
|
156
|
+
new_item.move!(source_folder: source_folder, owner: owner, sender: sender, overwrite: overwrite)
|
155
157
|
end
|
156
158
|
end
|
157
159
|
end
|
@@ -458,7 +458,16 @@ module RepositoryManager
|
|
458
458
|
repo_item.errors.add(:unzip, I18n.t('repository_manager.errors.repo_item.unzip.no_permission'))
|
459
459
|
raise RepositoryManager::PermissionException.new("unzip repo_file failed. You don't have the permission to create in the source_folder '#{target.name}'")
|
460
460
|
end
|
461
|
-
|
461
|
+
|
462
|
+
if !target
|
463
|
+
parent = repo_item.parent
|
464
|
+
if parent && !can_create?(parent)
|
465
|
+
repo_item.errors.add(:unzip, I18n.t('repository_manager.errors.repo_item.unzip.no_permission'))
|
466
|
+
raise RepositoryManager::PermissionException.new("unzip repo_file failed. You don't have the permission to create in the source_folder '#{parent.name}'")
|
467
|
+
end
|
468
|
+
end
|
469
|
+
|
470
|
+
repo_item.unzip!(source_folder: target, owner: self, sender: options[:sender], overwrite: options[:overwrite])
|
462
471
|
end
|
463
472
|
|
464
473
|
def unzip_repo_item(repo_item, options = {})
|
data/spec/unzip_spec.rb
CHANGED
@@ -60,6 +60,18 @@ describe 'Unzip' do
|
|
60
60
|
expect(@user2.unzip_repo_item(@zip_file)).to eq(false)
|
61
61
|
end
|
62
62
|
|
63
|
-
|
64
|
-
|
63
|
+
it 'User can\'t unzip file without create permission' do
|
64
|
+
@user2 = FactoryGirl.create(:user)
|
65
|
+
#shared_folder = @user1.create_folder('Shared Folder')
|
66
|
+
@user1.move_repo_item!(@zip_file, source_folder: @user1.create_folder('Shared Folder'))
|
67
|
+
@user1.share_repo_item!(@zip_file, @user2, repo_item_permissions: {
|
68
|
+
can_read: true,
|
69
|
+
can_create: true,
|
70
|
+
can_update: true,
|
71
|
+
can_delete: false,
|
72
|
+
can_share: true
|
73
|
+
} )
|
74
|
+
# He can t unzip because he don't have the permission to create in shared folder
|
75
|
+
expect(@user2.unzip_repo_item(@zip_file)).to eq(false)
|
76
|
+
end
|
65
77
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: repository-manager
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yves Baumann
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-08-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|