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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cf4767c19280879648bb81c83442854d471c7b8d
4
- data.tar.gz: aa71d60c28c24053af0e19153b270f73554fc3f8
3
+ metadata.gz: 9a5f9e1303f1c190997c2c901c476fa08b2d910c
4
+ data.tar.gz: a5c56d387625acf0a20fd17132c5efa9e957229a
5
5
  SHA512:
6
- metadata.gz: 665c150b8f12c7130c7027de8a590438e502465ea3b900872349a8cf89f66113062abecf8c0fc84043a82f6a0eeec5c8caaf7825d1b61818d29d435c73105ebb
7
- data.tar.gz: fe0025b6ab497be34fca378e0bc62ad7b653b6b5ebc05781c2b441566048128e91f143a624c6e1d6efd0c208612d306bb44d89486bdf3580446ccc5e1985e2d9
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: options[:owner], sender: options[:sender])
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
- if parent = self.parent
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: options[:owner], sender: options[:sender])
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: options[: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: options[:owner], sender: options[:sender])
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
- if parent = self.parent
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: options[:owner], sender: options[:sender])
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: options[: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
- repo_item.unzip!(source_folder: target, sender: options[:sender], overwrite: options[:overwrite])
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 = {})
@@ -1,3 +1,3 @@
1
1
  module RepositoryManager
2
- VERSION = '0.2.9'
2
+ VERSION = '0.2.10'
3
3
  end
@@ -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
- # TODO test change owner and sender
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.9
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-07-31 00:00:00.000000000 Z
11
+ date: 2014-08-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails