repository-manager 0.2.9 → 0.2.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|