repository-manager 0.1.25 → 0.1.30

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: 1cdc3ac29c2dc1407eeaa3fc1471f821f4c473f6
4
- data.tar.gz: 581c7a987d26e143705e1d711560c5f36e442486
3
+ metadata.gz: 145f1e8967f2e0ab92b1b3e4956a9c24d6630275
4
+ data.tar.gz: 0e532d15212ec9cd2594796bb7238c6ca38d2d12
5
5
  SHA512:
6
- metadata.gz: 5a9b3bc0edccafabddd82c4f74734a4a5288cf0d27a6688ba1b93c5d8947315234a99a6a081296c3f8f2308ce5fa38a3b39fd1fcf77f232dc0ffcffb1a84d549
7
- data.tar.gz: 60f9161a4018fa0cdba2bf0734e978e9d83bc4432a795d8b6bbce58299270d50e8450efecadd4c75699660f04ed990400b704b09ab9baaaba8da7939c150ba41
6
+ metadata.gz: eb7cb764141c843c0ad2df051c3a6da2d50d82bc15465bbf01bf4ad52a5928772c4cc7378a458efff6b45f5a3c09039365325e35f035bf873387080bef31283c
7
+ data.tar.gz: 329f18f7c9dfd9b4ae4bc0f3808b8156dfa392da5b4ab2a7ae9f08fefc95289dceacced4dcd0aa7ffaffe9865d1ce24f2dfc3a103f7ef1597f0711d377b2516e
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- repository-manager (0.1.23)
4
+ repository-manager (0.1.25)
5
5
  ancestry
6
6
  carrierwave (>= 0.5.8)
7
7
  rails (> 3.0.0)
data/README.md CHANGED
@@ -183,7 +183,7 @@ user1.move_repo_item(the_new_folder, test_folder)
183
183
  # | |-- 'The new folder'
184
184
  # | | |-- 'file.txt'
185
185
 
186
- # user1 want to rename 'The new folder' to 'The renamed folder'
186
+ # user1 want to rename 'The new folder' to 'The renamed folder' (it also can change the name of a file)
187
187
  user1.rename_repo_item(the_new_folder, 'The renamed folder')
188
188
 
189
189
  # user1 own repository :
@@ -338,8 +338,8 @@ if repo_item.is_folder
338
338
  elsif repo_item.is_file?
339
339
  repo_item.name #=> Returns the name of the file (for instance : 'file.png').
340
340
  # Here is the file
341
- repo_item.file.url # => '/url/to/file.png'
342
- repo_item.file.current_path # => 'path/to/file.png'
341
+ repo_item.file.url # => '/url/to/stored_file.png'
342
+ repo_item.file.current_path # => 'path/to/stored_file.png'
343
343
  end
344
344
  ```
345
345
 
@@ -442,6 +442,13 @@ RepositoryManager make the download of a `repo_item` easy. If the user want to d
442
442
  If the `repo_item` is a file, the method returns you the path of this file.
443
443
  If the `repo_item` is a folder, it automatically generates a zip file with all the constant that the user `can_read`. The method returns the path of this zip file.
444
444
 
445
+ ```ruby
446
+ # user1 want to download the_file
447
+ path_to_file = user1.download(the_file)
448
+ # don't forget to specify the name of the file (it could have been changed since uploaded)
449
+ send_file path_to_file, filename: the_file.name
450
+ ```
451
+
445
452
  ```ruby
446
453
  # user1 want to download the_folder
447
454
  path_to_zip = user1.download(the_folder)
@@ -507,7 +514,7 @@ end
507
514
 
508
515
  ## TODO
509
516
 
510
- - Do the rename file method
517
+ - Test the rename file method
511
518
  - Write the methods : share_link.
512
519
  - Snapshot the file if possible
513
520
  - Versioning
@@ -4,11 +4,16 @@ class RepositoryManager::RepoFile < RepositoryManager::RepoItem
4
4
  validates_presence_of :file
5
5
  mount_uploader :file, RepoFileUploader
6
6
  before_save :update_asset_attributes
7
+ before_create :default_name
7
8
 
8
- # Return the name of the file with his extension
9
- def name
10
- file.url.split('/').last
11
- end
9
+ ## Return the name of the file with his extension
10
+ #def name
11
+ # if self.name.blank?
12
+ # file.url.split('/').last
13
+ # else
14
+ # self.name
15
+ # end
16
+ #end
12
17
 
13
18
  def download(options = {})
14
19
  self.download!(options)
@@ -31,6 +36,7 @@ class RepositoryManager::RepoFile < RepositoryManager::RepoItem
31
36
  if options[:source_folder]
32
37
  options[:source_folder].add!(new_item)
33
38
  elsif options[:owner].repo_item_name_exist_in_root?(new_item.name)
39
+ self.errors.add(:copy, I18n.t('repository_manager.errors.repo_item.item_exist'))
34
40
  raise RepositoryManager::ItemExistException.new("copy failed. The repo_file '#{new_item.name}' already exist in root.")
35
41
  end
36
42
 
@@ -50,7 +56,7 @@ class RepositoryManager::RepoFile < RepositoryManager::RepoItem
50
56
  def copy(options = {})
51
57
  begin
52
58
  copy!(options)
53
- rescue RepositoryManager::PermissionException, RepositoryManager::RepositoryManagerException, ActiveRecord::RecordInvalid, ActiveRecord::RecordNotSaved
59
+ rescue RepositoryManager::ItemExistException, ActiveRecord::RecordInvalid, ActiveRecord::RecordNotSaved
54
60
  false
55
61
  end
56
62
  end
@@ -64,4 +70,10 @@ class RepositoryManager::RepoFile < RepositoryManager::RepoItem
64
70
  end
65
71
  end
66
72
 
73
+ def default_name
74
+ if name.blank?
75
+ self.name = file.url.split('/').last
76
+ end
77
+ end
78
+
67
79
  end
@@ -21,27 +21,7 @@ class RepositoryManager::RepoFolder < RepositoryManager::RepoItem
21
21
  def add(repo_item)
22
22
  begin
23
23
  add!(repo_item)
24
- rescue RepositoryManager::RepositoryManagerException
25
- false
26
- end
27
- end
28
-
29
- # Rename the item
30
- def rename!(new_name)
31
- if name_exist_in_siblings?(new_name)
32
- raise RepositoryManager::ItemExistException.new("rename failed. The repo_item '#{new_name}' already exist.'")
33
- else
34
- self.name = new_name
35
- # TODO see if I have to save or not
36
- save!
37
- end
38
- end
39
-
40
- # Rename the item
41
- def rename(new_name)
42
- begin
43
- rename!(new_name)
44
- rescue RepositoryManager::RepositoryManagerException, ActiveRecord::RecordInvalid, ActiveRecord::RecordNotSaved
24
+ rescue RepositoryManager::ItemExistException
45
25
  false
46
26
  end
47
27
  end
@@ -58,6 +38,7 @@ class RepositoryManager::RepoFolder < RepositoryManager::RepoItem
58
38
  if options[:source_folder]
59
39
  options[:source_folder].add!(new_item)
60
40
  elsif options[:owner].repo_item_name_exist_in_root?(new_item.name)
41
+ self.errors.add(:copy, I18n.t('repository_manager.errors.repo_item.item_exist'))
61
42
  raise RepositoryManager::ItemExistException.new("copy failed. The repo_folder '#{new_item.name}' already exist in root.")
62
43
  end
63
44
 
@@ -83,7 +64,7 @@ class RepositoryManager::RepoFolder < RepositoryManager::RepoItem
83
64
  def copy(options = {})
84
65
  begin
85
66
  copy!(options)
86
- rescue RepositoryManager::PermissionException, RepositoryManager::RepositoryManagerException, ActiveRecord::RecordInvalid, ActiveRecord::RecordNotSaved
67
+ rescue RepositoryManager::ItemExistException, ActiveRecord::RecordInvalid, ActiveRecord::RecordNotSaved
87
68
  false
88
69
  end
89
70
  end
@@ -124,7 +105,7 @@ class RepositoryManager::RepoFolder < RepositoryManager::RepoItem
124
105
 
125
106
  File.chmod(0444, full_path)
126
107
 
127
- return full_path
108
+ return full_path
128
109
  #else
129
110
  # # Nothing to download here
130
111
  # raise RepositoryManager::RepositoryManagerException.new("download failed. Folder #{name} is empty")
@@ -153,16 +134,7 @@ class RepositoryManager::RepoFolder < RepositoryManager::RepoItem
153
134
  # Returns true or false if the name exist in this folder
154
135
  def name_exist_in_children?(name)
155
136
  #RepositoryManager::RepoItem.where(name: name).where(id: child_ids).first ? true : false
156
- RepositoryManager::RepoItem.where('name = ? OR file = ?', name, name).where(id: child_ids).first ? true : false
157
- end
158
-
159
- # Returns true or false if the name exist in siblings
160
- def name_exist_in_siblings?(name)
161
- # We take all siblings without itself
162
- sibling_ids_without_itself = self.sibling_ids.delete(self.id)
163
- # We check if another item has the same name
164
- #RepositoryManager::RepoItem.where(name: name).where(id: sibling_ids_without_itself).first ? true : false
165
- RepositoryManager::RepoItem.where('name = ? OR file = ?', name, name).where(id: sibling_ids_without_itself).first ? true : false
137
+ RepositoryManager::RepoItem.where('name = ?', name).where(id: child_ids).first ? true : false
166
138
  end
167
139
 
168
140
  private
@@ -39,11 +39,13 @@ class RepositoryManager::RepoItem < ActiveRecord::Base
39
39
  raise RepositoryManager::RepositoryManagerException.new("move failed. target '#{options[:source_folder].name}' can't be a file")
40
40
  end
41
41
  if options[:source_folder].name_exist_in_children?(self.name)
42
+ self.errors.add(:move, I18n.t('repository_manager.errors.repo_item.item_exist'))
42
43
  raise RepositoryManager::ItemExistException.new("move failed. The repo_item '#{name}' already exist ine the folder '#{options[:source_folder].name}'")
43
44
  end
44
45
  # We are in root, we check if name exist in root
45
46
  # We stay in the same owner
46
47
  elsif self.owner.repo_item_name_exist_in_root?(self.name)
48
+ self.errors.add(:move, I18n.t('repository_manager.errors.repo_item.item_exist'))
47
49
  raise RepositoryManager::ItemExistException.new("move failed. The repo_item '#{name}' already exist ine the root")
48
50
  end
49
51
  # here, all is ok
@@ -62,7 +64,27 @@ class RepositoryManager::RepoItem < ActiveRecord::Base
62
64
  def move(options = {})
63
65
  begin
64
66
  move!(options)
65
- rescue RepositoryManager::RepositoryManagerException, ActiveRecord::RecordInvalid, ActiveRecord::RecordNotSaved
67
+ rescue RepositoryManager::RepositoryManagerException, RepositoryManager::ItemExistException, ActiveRecord::RecordInvalid, ActiveRecord::RecordNotSaved
68
+ false
69
+ end
70
+ end
71
+
72
+ # Rename the item
73
+ def rename!(new_name)
74
+ if name_exist_in_siblings?(new_name)
75
+ self.errors.add(:copy, I18n.t('repository_manager.errors.repo_item.item_exist'))
76
+ raise RepositoryManager::ItemExistException.new("rename failed. The repo_item '#{new_name}' already exist.'")
77
+ else
78
+ self.name = new_name
79
+ save!
80
+ end
81
+ end
82
+
83
+ # Rename the item
84
+ def rename(new_name)
85
+ begin
86
+ rename!(new_name)
87
+ rescue RepositoryManager::ItemExistException, ActiveRecord::RecordInvalid, ActiveRecord::RecordNotSaved
66
88
  false
67
89
  end
68
90
  end
@@ -92,6 +114,15 @@ class RepositoryManager::RepoItem < ActiveRecord::Base
92
114
  self.type == 'RepositoryManager::RepoFile'
93
115
  end
94
116
 
117
+ # Returns true or false if the name exist in siblings
118
+ def name_exist_in_siblings?(name)
119
+ # We take all siblings without itself
120
+ sibling_ids_without_itself = self.sibling_ids.delete(self.id)
121
+ # We check if another item has the same name
122
+ #RepositoryManager::RepoItem.where(name: name).where(id: sibling_ids_without_itself).first ? true : false
123
+ RepositoryManager::RepoItem.where('name = ?', name).where(id: sibling_ids_without_itself).first ? true : false
124
+ end
125
+
95
126
  private
96
127
  def put_sender
97
128
  self.sender = owner unless sender
@@ -36,7 +36,7 @@ class RepositoryManager::Sharing < ActiveRecord::Base
36
36
  if members.kind_of?(Array)
37
37
  # Add each member to this sharing
38
38
  members.each do |i|
39
- unless i.respond_to? :share # Check if this object "has_repository"
39
+ unless i.respond_to? :create_folder # Check if this object "has_repository"
40
40
  raise RepositoryManager::RepositoryManagerException.new("add members failed. The object passed into members should be a model who 'has_repository'")
41
41
  end
42
42
  sharing_member = RepositoryManager::SharingsMember.new(sharing_permissions)
@@ -45,7 +45,7 @@ class RepositoryManager::Sharing < ActiveRecord::Base
45
45
  self.sharings_members << sharing_member
46
46
  end
47
47
  else
48
- unless members.respond_to? :share # Check if this object "has_repository"
48
+ unless members.respond_to? :create_folder # Check if this object "has_repository"
49
49
  raise RepositoryManager::RepositoryManagerException.new("add members failed. The object passed into members should be a model who 'has_repository'")
50
50
  end
51
51
  sharing_member = RepositoryManager::SharingsMember.new(sharing_permissions)
@@ -49,6 +49,7 @@ module RepositoryManager
49
49
  if !RepositoryManager.accept_nested_sharing
50
50
  # Check if no other sharing exist in the path
51
51
  unless repo_item.can_be_shared_without_nesting?
52
+ repo_item.errors.add(:sharing, I18n.t('repository_manager.errors.sharing.create.nested_sharing'))
52
53
  raise RepositoryManager::NestedSharingException.new("sharing failed. Another sharing already exist on the subtree or an ancestor of '#{repo_item.name}'")
53
54
  end
54
55
  end
@@ -80,6 +81,7 @@ module RepositoryManager
80
81
  sharing
81
82
  else
82
83
  # No permission => No sharing
84
+ repo_item.errors.add(:sharing, I18n.t('repository_manager.errors.sharing.create.no_permission'))
83
85
  raise RepositoryManager::PermissionException.new("sharing failed. You don't have the permission to share the repo_item '#{repo_item.name}'")
84
86
  end
85
87
  end
@@ -87,11 +89,7 @@ module RepositoryManager
87
89
  def share(repo_item, members, options = {})
88
90
  begin
89
91
  share!(repo_item, members, options)
90
- rescue RepositoryManager::PermissionException
91
- repo_item.errors.add(:sharing, I18n.t('repository_manager.errors.sharing.create.no_permission'))
92
- false
93
- rescue RepositoryManager::NestedSharingException
94
- repo_item.errors.add(:sharing, I18n.t('repository_manager.errors.sharing.create.nested_sharing'))
92
+ rescue RepositoryManager::PermissionException, RepositoryManager::NestedSharingException, RepositoryManager::RepositoryManagerException
95
93
  false
96
94
  rescue ActiveRecord::RecordInvalid, ActiveRecord::RecordNotSaved
97
95
  repo_item.errors.add(:sharing, I18n.t('repository_manager.errors.sharing.create.not_created'))
@@ -165,6 +163,7 @@ module RepositoryManager
165
163
  if can_delete?(repo_item)
166
164
  repo_item.destroy
167
165
  else
166
+ repo_item.errors.add(:delete, I18n.t('repository_manager.errors.repo_item.delete.no_permission'))
168
167
  raise RepositoryManager::PermissionException.new("delete_repo_item failed. You don't have the permission to delete the repo_item '#{repo_item.name}'")
169
168
  end
170
169
  end
@@ -173,7 +172,6 @@ module RepositoryManager
173
172
  begin
174
173
  delete_repo_item!(repo_item)
175
174
  rescue RepositoryManager::PermissionException
176
- repo_item.errors.add(:delete, I18n.t('repository_manager.errors.repo_item.delete.no_permission'))
177
175
  false
178
176
  end
179
177
  end
@@ -182,6 +180,7 @@ module RepositoryManager
182
180
  # options :
183
181
  # :source_folder = The directory in with the folder is created
184
182
  # :sender = The object of the sender (ex : current_user)
183
+ # :filename = The name of the file (if you want to rename it directly)
185
184
  #
186
185
  # Param file can be a File, or a instance of RepoFile
187
186
  # Returns the object of the file created if it is ok
@@ -208,6 +207,8 @@ module RepositoryManager
208
207
  repo_file = RepositoryManager::RepoFile.new(file)
209
208
  end
210
209
 
210
+ options[:filename] ? repo_file.name = options[:filename] : repo_file.name = repo_file.file.url.split('/').last
211
+
211
212
  repo_file.owner = self
212
213
  repo_file.sender = options[:sender]
213
214
 
@@ -280,6 +281,7 @@ module RepositoryManager
280
281
 
281
282
  repo_item.download!({object: self, path: path})
282
283
  else
284
+ repo_item.errors.add(:download, I18n.t('repository_manager.errors.repo_item.download.no_permission'))
283
285
  raise RepositoryManager::PermissionException.new("download failed. You don't have the permission to download the repo_item '#{repo_item.name}'")
284
286
  end
285
287
  end
@@ -288,7 +290,6 @@ module RepositoryManager
288
290
  begin
289
291
  download!(repo_item, options)
290
292
  rescue RepositoryManager::PermissionException
291
- repo_item.errors.add(:download, I18n.t('repository_manager.errors.repo_item.download.no_permission'))
292
293
  false
293
294
  end
294
295
  end
@@ -296,6 +297,7 @@ module RepositoryManager
296
297
  # Rename the repo_item with the new_name
297
298
  def rename_repo_item!(repo_item, new_name)
298
299
  unless can_update?(repo_item)
300
+ repo_item.errors.add(:rename, I18n.t('repository_manager.errors.repo_item.rename.no_permission'))
299
301
  raise RepositoryManager::PermissionException.new("rename repo_item failed. You don't have the permission to update the repo_item '#{repo_item.name}'")
300
302
  end
301
303
  repo_item.rename!(new_name)
@@ -306,7 +308,6 @@ module RepositoryManager
306
308
  begin
307
309
  rename_repo_item!(repo_item, new_name)
308
310
  rescue RepositoryManager::PermissionException
309
- repo_item.errors.add(:rename, I18n.t('repository_manager.errors.repo_item.rename.no_permission'))
310
311
  false
311
312
  end
312
313
  end
@@ -316,25 +317,30 @@ module RepositoryManager
316
317
  # if target == nil, move to the root
317
318
  def move_repo_item!(repo_item, target = nil)
318
319
  if !can_read?(repo_item)
320
+ repo_item.errors.add(:move, I18n.t('repository_manager.errors.repo_item.move.no_permission'))
319
321
  raise RepositoryManager::PermissionException.new("move repo_item failed. You don't have the permission to read the repo_item '#{repo_item.name}'")
320
322
  end
321
323
  # If we want to change the owner we have to have the can_delete permission
322
324
  if target
323
325
  # If want to change the owner, we have to check if we have the permission
324
326
  if target.owner != repo_item.owner && !can_delete?(repo_item)
327
+ repo_item.errors.add(:move, I18n.t('repository_manager.errors.repo_item.move.no_permission'))
325
328
  raise RepositoryManager::PermissionException.new("move repo_item failed. You don't have the permission to delete the repo_item '#{repo_item.name}'")
326
329
  end
327
330
  # If we don't want to change the owner, we look if we can_update
328
331
  if target.owner == repo_item.owner && !can_update?(repo_item)
332
+ repo_item.errors.add(:move, I18n.t('repository_manager.errors.repo_item.move.no_permission'))
329
333
  raise RepositoryManager::PermissionException.new("move repo_item failed. You don't have the permission to update the '#{repo_item.name}'")
330
334
  end
331
335
  # We check if we can_create in the source_folder
332
336
  unless can_create?(target)
337
+ repo_item.errors.add(:move, I18n.t('repository_manager.errors.repo_item.move.no_permission'))
333
338
  raise RepositoryManager::PermissionException.new("move repo_item failed. You don't have the permission to create in the source_folder '#{options[:source_folder].name}'")
334
339
  end
335
340
  else
336
341
  # Else if there is no source_folder, we check if we can delete the repo_item, if the owner change
337
342
  if self != repo_item.owner && !can_delete?(repo_item)
343
+ repo_item.errors.add(:move, I18n.t('repository_manager.errors.repo_item.move.no_permission'))
338
344
  raise RepositoryManager::PermissionException.new("move repo_item failed. You don't have the permission to delete the repo_item '#{repo_item.name}'")
339
345
  end
340
346
  end
@@ -345,11 +351,7 @@ module RepositoryManager
345
351
  def move_repo_item(repo_item, target = nil)
346
352
  begin
347
353
  move_repo_item!(repo_item, target)
348
- rescue RepositoryManager::PermissionException
349
- repo_item.errors.add(:move, I18n.t('repository_manager.errors.repo_item.move.no_permission'))
350
- false
351
- rescue RepositoryManager::ItemExistException
352
- repo_item.errors.add(:move, I18n.t('repository_manager.errors.repo_item.item_exist'))
354
+ rescue RepositoryManager::PermissionException, RepositoryManager::ItemExistException
353
355
  false
354
356
  rescue RepositoryManager::RepositoryManagerException, ActiveRecord::RecordInvalid, ActiveRecord::RecordNotSaved
355
357
  repo_item.errors.add(:move, I18n.t('repository_manager.errors.repo_item.move.not_moved'))
@@ -363,10 +365,12 @@ module RepositoryManager
363
365
  # :sender => the new sender (by default => still the old sender)
364
366
  def copy_repo_item!(repo_item, target = nil, options = {})
365
367
  unless can_read?(repo_item)
368
+ repo_item.errors.add(:copy, I18n.t('repository_manager.errors.repo_item.copy.no_permission'))
366
369
  raise RepositoryManager::PermissionException.new("copy repo_item failed. You don't have the permission to read the repo_item '#{repo_item.name}'")
367
370
  end
368
371
 
369
372
  if target && !can_create?(target)
373
+ repo_item.errors.add(:copy, I18n.t('repository_manager.errors.repo_item.copy.no_permission'))
370
374
  raise RepositoryManager::PermissionException.new("copy repo_item failed. You don't have the permission to create in the source_folder '#{target.name}'")
371
375
  end
372
376
 
@@ -384,13 +388,9 @@ module RepositoryManager
384
388
  def copy_repo_item(repo_item, target = nil, options = {})
385
389
  begin
386
390
  copy_repo_item!(repo_item, target, options)
387
- rescue RepositoryManager::PermissionException
388
- repo_item.errors.add(:copy, I18n.t('repository_manager.errors.repo_item.copy.no_permission'))
389
- false
390
- rescue RepositoryManager::ItemExistException
391
- repo_item.errors.add(:copy, I18n.t('repository_manager.errors.repo_item.item_exist'))
391
+ rescue RepositoryManager::PermissionException, RepositoryManager::ItemExistException
392
392
  false
393
- rescue RepositoryManager::RepositoryManagerException, ActiveRecord::RecordInvalid, ActiveRecord::RecordNotSaved
393
+ rescue ActiveRecord::RecordInvalid, ActiveRecord::RecordNotSaved
394
394
  repo_item.errors.add(:copy, I18n.t('repository_manager.errors.repo_item.copy.not_copied'))
395
395
  false
396
396
  end
@@ -472,6 +472,7 @@ module RepositoryManager
472
472
  sharing_permissions = make_sharing_permissions(options, permissions)
473
473
  sharing.add_members(members, sharing_permissions)
474
474
  else
475
+ sharing.errors.add(:add, I18n.t('repository_manager.errors.sharing.add.no_permission'))
475
476
  raise RepositoryManager::PermissionException.new("add members failed. You don't have the permission to add a member in this sharing")
476
477
  end
477
478
  end
@@ -480,7 +481,6 @@ module RepositoryManager
480
481
  begin
481
482
  add_members_to!(sharing, members, options = RepositoryManager.default_sharing_permissions)
482
483
  rescue RepositoryManager::PermissionException
483
- sharing.errors.add(:add, I18n.t('repository_manager.errors.sharing.add.no_permission'))
484
484
  false
485
485
  end
486
486
  end
@@ -491,6 +491,7 @@ module RepositoryManager
491
491
  if can_remove_from?(sharing)
492
492
  sharing.remove_members(members)
493
493
  else
494
+ sharing.errors.add(:remove, I18n.t('repository_manager.errors.sharing.remove.no_permission'))
494
495
  raise RepositoryManager::PermissionException.new("remove members failed. You don't have the permission to remove a member on this sharing")
495
496
  end
496
497
  end
@@ -499,7 +500,6 @@ module RepositoryManager
499
500
  begin
500
501
  remove_members_from!(sharing, members)
501
502
  rescue RepositoryManager::PermissionException
502
- sharing.errors.add(:remove, I18n.t('repository_manager.errors.sharing.remove.no_permission'))
503
503
  false
504
504
  end
505
505
  end
@@ -511,7 +511,7 @@ module RepositoryManager
511
511
 
512
512
  # Returns true of false if the name exist in the root path of this instance
513
513
  def repo_item_name_exist_in_root?(name)
514
- RepoItem.where('name = ? OR file = ?', name, name).where(owner: self).where(ancestry: nil).first ? true : false
514
+ RepoItem.where('name = ?', name).where(owner: self).where(ancestry: nil).first ? true : false
515
515
  end
516
516
 
517
517
  private
@@ -541,7 +541,6 @@ module RepositoryManager
541
541
  if permissions == nil
542
542
  permissions = get_permissions(repo_item)
543
543
  end
544
-
545
544
  case what
546
545
  when 'read'
547
546
  permissions == true || (permissions.kind_of?(Hash) && permissions[:can_read] == true)
@@ -1,3 +1,3 @@
1
1
  module RepositoryManager
2
- VERSION = '0.1.25'
2
+ VERSION = '0.1.30'
3
3
  end
Binary file
@@ -247,9 +247,17 @@ describe 'RepoItem' do
247
247
  file2 = @user1.create_file(File.open("#{Rails.root}/../fixture/textfile.txt"), options)
248
248
  expect(file2).to eq(false)
249
249
  expect(options[:errors]).to eq(['This file already exist'])
250
+ end
250
251
 
252
+ it "can rename a file" do
253
+ file = @user1.create_file(File.open("#{Rails.root}/../fixture/textfile.txt"), source_folder: @user1_folder)
254
+ @user1.rename_repo_item(file, 'lol.txt')
255
+ expect(file.reload.name).to eq('lol.txt')
256
+ @user1.create_file!(File.open("#{Rails.root}/../fixture/textfile.txt"), source_folder: @user1_folder)
257
+ file2 = @user1.create_file!(File.open("#{Rails.root}/../fixture/textfile.txt"), source_folder: @user1_folder, filename: 'haha.txt')
251
258
 
252
- #@user1.create_file!(File.open("#{Rails.root}/../fixture/textfile.txt"), source_folder: @user1_folder)
259
+ expect(file2.reload.name).to eq('haha.txt')
260
+ expect(@user1_folder.children.count).to eq(3)
253
261
  end
254
262
 
255
263
  it 'sender is equal to owner if no sender in create_folder' do
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.1.25
4
+ version: 0.1.30
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-03-07 00:00:00.000000000 Z
11
+ date: 2014-03-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails