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 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