repository-manager 0.0.13 → 0.0.22
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 +5 -13
- data/.rspec +1 -1
- data/README.md +424 -419
- data/app/models/repo_file.rb +29 -29
- data/app/models/repo_folder.rb +134 -114
- data/app/models/repo_item.rb +65 -64
- data/app/models/sharing.rb +58 -58
- data/app/models/sharings_member.rb +5 -5
- data/config/locales/en/repository_manager.en.yml +19 -0
- data/config/locales/fr/repository_manager.fr.yml +19 -0
- data/db/migrate/20131018214212_create_repository_manager.rb +32 -31
- data/lib/generators/repository_manager/install_generator.rb +32 -32
- data/lib/generators/repository_manager/templates/initializer.rb +11 -11
- data/lib/repository_manager/exceptions.rb +9 -9
- data/lib/repository_manager/has_repository.rb +506 -452
- data/lib/repository_manager/version.rb +1 -1
- data/repository-manager.gemspec +30 -30
- data/spec/dummy/db/migrate/20131016193722_create_users.rb +10 -10
- data/spec/dummy/db/migrate/20131016193834_create_groups.rb +9 -9
- data/spec/dummy/db/migrate/20131016194207_create_groups_users.rb +4 -4
- data/spec/dummy/db/migrate/20131018214212_create_repository_manager.rb +31 -31
- data/spec/dummy/db/schema.rb +66 -66
- data/spec/factories/group.rb +7 -7
- data/spec/factories/repo_file.rb +12 -12
- data/spec/factories/repo_folder.rb +7 -7
- data/spec/factories/user.rb +13 -13
- data/spec/has_repository_spec.rb +280 -281
- data/spec/models/associations_spec.rb +88 -88
- data/spec/models/repository_spec.rb +176 -144
- data/spec/models/share_spec.rb +67 -67
- metadata +34 -37
data/spec/models/share_spec.rb
CHANGED
@@ -1,68 +1,68 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe 'Sharing' do
|
4
|
-
|
5
|
-
before do
|
6
|
-
@user1 = FactoryGirl.create(:user)
|
7
|
-
@user2 = FactoryGirl.create(:user)
|
8
|
-
@user3 = FactoryGirl.create(:user)
|
9
|
-
@user1_file = FactoryGirl.build(:repo_file)
|
10
|
-
@user1_file.owner = @user1
|
11
|
-
@user1_file.save
|
12
|
-
end
|
13
|
-
|
14
|
-
it 'can add a member in his own sharing' do
|
15
|
-
sharing = @user1.share(@user1_file, @user2, {sharing_permissions:{can_add: false, can_remove: false}})
|
16
|
-
@user1.add_members_to(sharing, @user3)
|
17
|
-
expect(@user3.shared_repo_items.count).to eq(1)
|
18
|
-
end
|
19
|
-
|
20
|
-
it 'can\'t add a member in a sharing without permission' do
|
21
|
-
sharing = @user1.share(@user1_file, @user2, {sharing_permissions:{can_add: false, can_remove: false}})
|
22
|
-
@user2.add_members_to(sharing, @user3)
|
23
|
-
expect(@user3.shared_repo_items.count).to eq(0)
|
24
|
-
end
|
25
|
-
|
26
|
-
it 'can add a member in a sharing with permission' do
|
27
|
-
sharing = @user1.share(@user1_file, @user2, {sharing_permissions:{can_add: true, can_remove: false}})
|
28
|
-
@user2.add_members_to(sharing, @user3)
|
29
|
-
expect(@user3.shared_repo_items.count).to eq(1)
|
30
|
-
end
|
31
|
-
|
32
|
-
it 'can remove a member in his own sharing' do
|
33
|
-
sharing = @user1.share(@user1_file, @user2, {sharing_permissions:{can_add: false, can_remove: false}})
|
34
|
-
@user1.remove_members_from(sharing, @user2)
|
35
|
-
expect(@user2.shared_repo_items.count).to eq(0)
|
36
|
-
end
|
37
|
-
|
38
|
-
it 'can remove a member in a sharing with permission' do
|
39
|
-
sharing = @user1.share(@user1_file, @user2, {sharing_permissions:{can_add: false, can_remove: true}})
|
40
|
-
@user1.add_members_to(sharing, @user3)
|
41
|
-
@user2.remove_members_from(sharing, @user3)
|
42
|
-
expect(@user3.shared_repo_items.count).to eq(0)
|
43
|
-
end
|
44
|
-
|
45
|
-
it 'can\'t remove a member in a sharing without permission' do
|
46
|
-
sharing = @user1.share(@user1_file, @user2, {sharing_permissions:{can_add: false, can_remove: false}})
|
47
|
-
@user1.add_members_to(sharing, @user3)
|
48
|
-
@user2.remove_members_from(sharing, @user3)
|
49
|
-
expect(@user3.shared_repo_items.count).to eq(1)
|
50
|
-
end
|
51
|
-
|
52
|
-
it 'can remove and add an array of members in a sharing with permission' do
|
53
|
-
sharing = @user1.share(@user1_file, @user2, {sharing_permissions:{can_add: true, can_remove: true}})
|
54
|
-
user4 = FactoryGirl.create(:user)
|
55
|
-
@user2.add_members_to(sharing, [@user3, user4])
|
56
|
-
expect(user4.shared_repo_items.count).to eq(1)
|
57
|
-
@user2.remove_members_from(sharing, [@user3, user4])
|
58
|
-
expect(user4.shared_repo_items.count).to eq(0)
|
59
|
-
end
|
60
|
-
|
61
|
-
it 'can\'t add a members in a sharing with permission that he has not' do
|
62
|
-
sharing = @user1.share(@user1_file, @user2, {sharing_permissions:{can_add: true, can_remove: false}})
|
63
|
-
@user2.add_members_to(sharing, @user3, {can_add:true, can_remove:true})
|
64
|
-
@user3.remove_members_from(sharing, @user2)
|
65
|
-
expect(@user2.shared_repo_items.count).to eq(1)
|
66
|
-
end
|
67
|
-
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'Sharing' do
|
4
|
+
|
5
|
+
before do
|
6
|
+
@user1 = FactoryGirl.create(:user)
|
7
|
+
@user2 = FactoryGirl.create(:user)
|
8
|
+
@user3 = FactoryGirl.create(:user)
|
9
|
+
@user1_file = FactoryGirl.build(:repo_file)
|
10
|
+
@user1_file.owner = @user1
|
11
|
+
@user1_file.save
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'can add a member in his own sharing' do
|
15
|
+
sharing = @user1.share(@user1_file, @user2, {sharing_permissions:{can_add: false, can_remove: false}})
|
16
|
+
@user1.add_members_to(sharing, @user3)
|
17
|
+
expect(@user3.shared_repo_items.count).to eq(1)
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'can\'t add a member in a sharing without permission' do
|
21
|
+
sharing = @user1.share(@user1_file, @user2, {sharing_permissions:{can_add: false, can_remove: false}})
|
22
|
+
@user2.add_members_to(sharing, @user3)
|
23
|
+
expect(@user3.shared_repo_items.count).to eq(0)
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'can add a member in a sharing with permission' do
|
27
|
+
sharing = @user1.share(@user1_file, @user2, {sharing_permissions:{can_add: true, can_remove: false}})
|
28
|
+
@user2.add_members_to(sharing, @user3)
|
29
|
+
expect(@user3.shared_repo_items.count).to eq(1)
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'can remove a member in his own sharing' do
|
33
|
+
sharing = @user1.share(@user1_file, @user2, {sharing_permissions:{can_add: false, can_remove: false}})
|
34
|
+
@user1.remove_members_from(sharing, @user2)
|
35
|
+
expect(@user2.shared_repo_items.count).to eq(0)
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'can remove a member in a sharing with permission' do
|
39
|
+
sharing = @user1.share(@user1_file, @user2, {sharing_permissions:{can_add: false, can_remove: true}})
|
40
|
+
@user1.add_members_to(sharing, @user3)
|
41
|
+
@user2.remove_members_from(sharing, @user3)
|
42
|
+
expect(@user3.shared_repo_items.count).to eq(0)
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'can\'t remove a member in a sharing without permission' do
|
46
|
+
sharing = @user1.share(@user1_file, @user2, {sharing_permissions:{can_add: false, can_remove: false}})
|
47
|
+
@user1.add_members_to(sharing, @user3)
|
48
|
+
@user2.remove_members_from(sharing, @user3)
|
49
|
+
expect(@user3.shared_repo_items.count).to eq(1)
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'can remove and add an array of members in a sharing with permission' do
|
53
|
+
sharing = @user1.share(@user1_file, @user2, {sharing_permissions:{can_add: true, can_remove: true}})
|
54
|
+
user4 = FactoryGirl.create(:user)
|
55
|
+
@user2.add_members_to(sharing, [@user3, user4])
|
56
|
+
expect(user4.shared_repo_items.count).to eq(1)
|
57
|
+
@user2.remove_members_from(sharing, [@user3, user4])
|
58
|
+
expect(user4.shared_repo_items.count).to eq(0)
|
59
|
+
end
|
60
|
+
|
61
|
+
it 'can\'t add a members in a sharing with permission that he has not' do
|
62
|
+
sharing = @user1.share(@user1_file, @user2, {sharing_permissions:{can_add: true, can_remove: false}})
|
63
|
+
@user2.add_members_to(sharing, @user3, {can_add:true, can_remove:true})
|
64
|
+
@user3.remove_members_from(sharing, @user2)
|
65
|
+
expect(@user2.shared_repo_items.count).to eq(1)
|
66
|
+
end
|
67
|
+
|
68
68
|
end
|
metadata
CHANGED
@@ -1,121 +1,116 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: repository-manager
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.22
|
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-01-
|
11
|
+
date: 2014-01-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '>'
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 3.0.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - '>'
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 3.0.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: factory_girl
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - '>='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 2.6.0
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 2.6.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: sqlite3
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - '>='
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rspec-rails
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 2.6.1
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - '>='
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: 2.6.1
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: ancestry
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - '>='
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - '>='
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: carrierwave
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - '>='
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
89
|
+
version: 0.5.8
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - '>='
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
96
|
+
version: 0.5.8
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: rubyzip
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - '>='
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
103
|
+
version: 1.0.0
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - '>='
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
111
|
-
description:
|
112
|
-
for Collaide. A system for easily create/delete files and folders in a repository.
|
113
|
-
|
114
|
-
authorisations management.
|
115
|
-
|
116
|
-
Each instance (users, groups, etc..) can have it own repositories (with files and
|
117
|
-
folders). It can manage them easily (edit, remove, add, etc) and sharing them with
|
118
|
-
other instance.'
|
110
|
+
version: 1.0.0
|
111
|
+
description: |-
|
112
|
+
This project is based on the need for a repository manager system for Collaide. A system for easily create/delete files and folders in a repository. For sharing these repositories easily with other object with a flexible and complete authorisations management.
|
113
|
+
Each instance (users, groups, etc..) can have it own repositories (with files and folders). It can manage them easily (edit, remove, add, etc) and sharing them with other instance.
|
119
114
|
email:
|
120
115
|
- texicitys@gmail.com
|
121
116
|
executables: []
|
@@ -135,6 +130,8 @@ files:
|
|
135
130
|
- app/models/sharing.rb
|
136
131
|
- app/models/sharings_member.rb
|
137
132
|
- app/uploaders/repo_file_uploader.rb
|
133
|
+
- config/locales/en/repository_manager.en.yml
|
134
|
+
- config/locales/fr/repository_manager.fr.yml
|
138
135
|
- db/migrate/20131018214212_create_repository_manager.rb
|
139
136
|
- lib/generators/repository_manager/install_generator.rb
|
140
137
|
- lib/generators/repository_manager/templates/initializer.rb
|
@@ -205,12 +202,12 @@ require_paths:
|
|
205
202
|
- lib
|
206
203
|
required_ruby_version: !ruby/object:Gem::Requirement
|
207
204
|
requirements:
|
208
|
-
- -
|
205
|
+
- - '>='
|
209
206
|
- !ruby/object:Gem::Version
|
210
207
|
version: '0'
|
211
208
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
212
209
|
requirements:
|
213
|
-
- -
|
210
|
+
- - '>='
|
214
211
|
- !ruby/object:Gem::Version
|
215
212
|
version: '0'
|
216
213
|
requirements: []
|