activity_permission_engine 0.0.1
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 +7 -0
- data/.gitignore +16 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +167 -0
- data/Rakefile +6 -0
- data/activity_permission_engine.gemspec +25 -0
- data/lib/activity_permission_engine.rb +47 -0
- data/lib/activity_permission_engine/activities_registry.rb +20 -0
- data/lib/activity_permission_engine/activity_permissions_registry.rb +59 -0
- data/lib/activity_permission_engine/adapters/activity_permissions_registry/memory.rb +39 -0
- data/lib/activity_permission_engine/allow_activity.rb +38 -0
- data/lib/activity_permission_engine/check_authorization.rb +47 -0
- data/lib/activity_permission_engine/disallow_activity.rb +38 -0
- data/lib/activity_permission_engine/framework/request.rb +16 -0
- data/lib/activity_permission_engine/interface_helpers.rb +31 -0
- data/lib/activity_permission_engine/list_activities.rb +27 -0
- data/lib/activity_permission_engine/list_activities_permissions.rb +28 -0
- data/lib/activity_permission_engine/register_activity.rb +38 -0
- data/lib/activity_permission_engine/test_helpers/activity_permissions_registry_test.rb +31 -0
- data/lib/activity_permission_engine/unregister_activity.rb +38 -0
- data/lib/activity_permission_engine/version.rb +3 -0
- data/test/adapters/activities_registry/memory_test.rb +68 -0
- data/test/functionnals/activity_permission_engine_test.rb +74 -0
- data/test/interface_specifications/allow_activity_test.rb +35 -0
- data/test/interface_specifications/check_authorization_test.rb +47 -0
- data/test/interface_specifications/disallow_activity_test.rb +33 -0
- data/test/interface_specifications/list_activities_permissions_test.rb +26 -0
- data/test/interface_specifications/list_activities_test.rb +24 -0
- data/test/interface_specifications/register_activity_test.rb +39 -0
- data/test/interface_specifications/unregister_activity_test.rb +42 -0
- data/test/test_helper.rb +8 -0
- metadata +143 -0
@@ -0,0 +1,35 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
|
3
|
+
module ActivityPermissionEngine
|
4
|
+
describe 'ActivityPermissionEngine.allow_activity(activity_ref, role_ref)' do
|
5
|
+
let(:succeed) { true }
|
6
|
+
let(:activity_ref) { 'foo' }
|
7
|
+
let(:role_ref) { 'bar' }
|
8
|
+
let(:activity_permissions_registry) { Minitest::Mock.new.expect(:add_role, succeed, [activity_ref, role_ref]) }
|
9
|
+
|
10
|
+
before(:each) do
|
11
|
+
ActivityPermissionEngine.configuration.activity_permissions_registry = activity_permissions_registry
|
12
|
+
end
|
13
|
+
|
14
|
+
subject { ActivityPermissionEngine.allow_activity(activity_ref, role_ref) }
|
15
|
+
|
16
|
+
it 'returns AllowActivity::Response' do
|
17
|
+
subject.must_be_kind_of AllowActivity::Response
|
18
|
+
end
|
19
|
+
|
20
|
+
describe 'when succeed' do
|
21
|
+
describe 'AllowActivity::Response#success?' do
|
22
|
+
it 'returns true' do
|
23
|
+
subject.success?.must_equal true
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe 'AllowActivity::Request#new(activity_ref, role_ref)' do
|
29
|
+
it 'require activity_ref, role_ref as string' do
|
30
|
+
-> { AllowActivity::Request.new('') }.must_raise ArgumentError
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
|
3
|
+
module ActivityPermissionEngine
|
4
|
+
describe 'ActivityPermissionEngine.check_authorization(check_authorization_request)' do
|
5
|
+
let(:activity_ref) { 'activity_ref' }
|
6
|
+
let(:user_role_refs) { ['baz','buzz'] }
|
7
|
+
let(:role_refs) { ['foo', 'bar'] }
|
8
|
+
let(:activity_permissions_registry) { Minitest::Mock.new.expect(:find_by_activity_ref, activity, [activity_ref]) }
|
9
|
+
let(:activity) { Minitest::Mock.new }
|
10
|
+
|
11
|
+
before(:each) do
|
12
|
+
activity.expect(:activity_ref, activity_ref)
|
13
|
+
activity.expect(:role_refs, role_refs)
|
14
|
+
ActivityPermissionEngine.configuration.activity_permissions_registry = activity_permissions_registry
|
15
|
+
end
|
16
|
+
|
17
|
+
subject { ActivityPermissionEngine.check_authorization(activity_ref, user_role_refs) }
|
18
|
+
|
19
|
+
it 'return CheckAuthorization::Response' do
|
20
|
+
subject.must_be_kind_of CheckAuthorization::Response
|
21
|
+
end
|
22
|
+
|
23
|
+
describe 'CheckAuthorization::Response#authorized?' do
|
24
|
+
it 'returns false' do
|
25
|
+
subject.authorized?.must_equal false
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
describe 'when activity is permitted to role' do
|
30
|
+
let(:user_role_refs) { ['foo','baz'] }
|
31
|
+
|
32
|
+
describe 'CheckAuthorization::Response#authorized?' do
|
33
|
+
it 'returns true' do
|
34
|
+
subject.authorized?.must_equal true
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
describe 'it require a CheckAuthorization::Request as parameter' do
|
40
|
+
describe 'CheckAuthorization::Request.new(activity_ref,role_refs)' do
|
41
|
+
it 'require an activity_ref string and role_refs array' do
|
42
|
+
lambda { CheckAuthorization::Request.new('') }.must_raise ArgumentError
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
|
3
|
+
module ActivityPermissionEngine
|
4
|
+
describe 'ActivityPermissionEngine.disallow_activity(disallow_activity_request)' do
|
5
|
+
let(:activity_ref) { 'activity_ref' }
|
6
|
+
let(:role_ref) { 'role_ref' }
|
7
|
+
let(:activity_permissions_registry) { Minitest::Mock.new.expect(:remove_role, true, [activity_ref, role_ref]) }
|
8
|
+
|
9
|
+
subject { ActivityPermissionEngine.disallow_activity(activity_ref, role_ref) }
|
10
|
+
|
11
|
+
before(:each) do
|
12
|
+
ActivityPermissionEngine.configuration.activity_permissions_registry = activity_permissions_registry
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'returns DisallowActivity::Response' do
|
16
|
+
subject.must_be_kind_of DisallowActivity::Response
|
17
|
+
end
|
18
|
+
|
19
|
+
describe 'when succeed' do
|
20
|
+
describe 'DisallowActivity::Response#success?' do
|
21
|
+
it 'returns true' do
|
22
|
+
subject.success?.must_equal true
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe 'DisallowActivity::Request#new(activity_ref, role_ref)' do
|
28
|
+
it 'require an activity_ref and role string' do
|
29
|
+
-> { DisallowActivity::Request.new('') }.must_raise ArgumentError
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
|
3
|
+
module ActivityPermissionEngine
|
4
|
+
describe 'ActivityPermissionEngine.list_activities_permissions' do
|
5
|
+
let(:activity_refs) { ['foo', 'bar'] }
|
6
|
+
let(:registry) { Minitest::Mock.new }
|
7
|
+
subject { ActivityPermissionEngine.list_activities_permissions }
|
8
|
+
|
9
|
+
before(:each) do
|
10
|
+
registry.expect(:all, [])
|
11
|
+
ActivityPermissionEngine.configuration = Configuration.new(activity_permissions_registry: registry)
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'returns ListActivities::Response' do
|
15
|
+
subject.must_be_kind_of ListActivitiesPermissions::Response
|
16
|
+
end
|
17
|
+
|
18
|
+
describe 'ListActivities::Response#activities_permissions' do
|
19
|
+
subject { ActivityPermissionEngine.list_activities_permissions.activities_permissions }
|
20
|
+
it 'returns Array()' do
|
21
|
+
subject.must_be_kind_of Array
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
|
3
|
+
module ActivityPermissionEngine
|
4
|
+
describe 'ActivityPermissionEngine.list_activities' do
|
5
|
+
let(:activity_refs) { ['foo', 'bar'] }
|
6
|
+
subject { ActivityPermissionEngine.list_activities }
|
7
|
+
|
8
|
+
before(:each) do
|
9
|
+
ActivityPermissionEngine.configuration = Configuration.new(activities: activity_refs)
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'returns ListActivities::Response' do
|
13
|
+
subject.must_be_kind_of ListActivities::Response
|
14
|
+
end
|
15
|
+
|
16
|
+
describe 'ListActivities::Response#activity_refs' do
|
17
|
+
subject { ActivityPermissionEngine.list_activities.activity_refs }
|
18
|
+
it 'returns Array(activity_ref)' do
|
19
|
+
subject.must_equal activity_refs
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
|
3
|
+
module ActivityPermissionEngine
|
4
|
+
describe 'ActivityPermissionEngine.register_activity(activity_ref)' do
|
5
|
+
let(:activity_ref) { 'activity_ref' }
|
6
|
+
let(:succeed) { true }
|
7
|
+
|
8
|
+
subject { ActivityPermissionEngine.register_activity(activity_ref) }
|
9
|
+
|
10
|
+
it 'returns RegisterActivity::Response' do
|
11
|
+
subject.must_be_kind_of RegisterActivity::Response
|
12
|
+
end
|
13
|
+
|
14
|
+
describe 'when registration succeed' do
|
15
|
+
describe 'RegisterActivity::Response#success?' do
|
16
|
+
it 'returns true' do
|
17
|
+
subject.success?.must_equal true
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
describe 'when registration fail' do
|
23
|
+
describe 'RegisterActivity::Response#success?' do
|
24
|
+
it 'returns false' do
|
25
|
+
activities_registry = Minitest::Mock.new.expect(:add, false, ['activity_ref'])
|
26
|
+
ActivityPermissionEngine.configuration.stub(:activities_registry, activities_registry) do
|
27
|
+
subject.success?.must_equal false
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
describe 'RegisterActivity::Request#new(activity_ref)' do
|
35
|
+
it 'require activity_ref string as parameter' do
|
36
|
+
-> {RegisterActivity::Request.new}.must_raise ArgumentError
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
|
3
|
+
module ActivityPermissionEngine
|
4
|
+
describe 'ActivityPermissionEngine.unregister_activity(activity_ref)' do
|
5
|
+
let(:activity_ref) { 'foo' }
|
6
|
+
let(:succeed) { true }
|
7
|
+
let(:activity_permissions_registry) { Minitest::Mock.new.expect(:del, succeed, [activity_ref]) }
|
8
|
+
|
9
|
+
subject { ActivityPermissionEngine.unregister_activity(activity_ref) }
|
10
|
+
|
11
|
+
before(:each) do
|
12
|
+
ActivityPermissionEngine.configuration.activity_permissions_registry = activity_permissions_registry
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'returns UnregisterActivity::Response' do
|
16
|
+
subject.must_be_kind_of UnregisterActivity::Response
|
17
|
+
end
|
18
|
+
|
19
|
+
describe 'when succeed' do
|
20
|
+
describe 'UnregisterActivity::Response#success?' do
|
21
|
+
it 'returns true' do
|
22
|
+
subject.success?.must_equal true
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe 'when fail' do
|
28
|
+
let(:succeed) { false }
|
29
|
+
describe 'UnregisterActivity::Response#success?' do
|
30
|
+
it 'returns false' do
|
31
|
+
subject.success?.must_equal false
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe 'UnregisterActivity::Request#new(activity_ref)' do
|
37
|
+
it 'require activity_ref string as parameter' do
|
38
|
+
-> { UnregisterActivity::Request.new }.must_raise ArgumentError
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
data/test/test_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,143 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: activity_permission_engine
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Cedric Brancourt
|
8
|
+
- Synbioz
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2016-03-23 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: bundler
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - "~>"
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '1.7'
|
21
|
+
type: :development
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - "~>"
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '1.7'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: rake
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - "~>"
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '10.0'
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - "~>"
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '10.0'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: minitest
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '5.8'
|
49
|
+
type: :development
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - "~>"
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '5.8'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: simplecov
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - "~>"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0.11'
|
63
|
+
type: :development
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - "~>"
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0.11'
|
70
|
+
description: Allow you to map roles to activities and to check for allowance
|
71
|
+
email:
|
72
|
+
- cedric.brancourt@gmail.com
|
73
|
+
- opensource@synbioz.com
|
74
|
+
executables: []
|
75
|
+
extensions: []
|
76
|
+
extra_rdoc_files: []
|
77
|
+
files:
|
78
|
+
- ".gitignore"
|
79
|
+
- Gemfile
|
80
|
+
- LICENSE.txt
|
81
|
+
- README.md
|
82
|
+
- Rakefile
|
83
|
+
- activity_permission_engine.gemspec
|
84
|
+
- lib/activity_permission_engine.rb
|
85
|
+
- lib/activity_permission_engine/activities_registry.rb
|
86
|
+
- lib/activity_permission_engine/activity_permissions_registry.rb
|
87
|
+
- lib/activity_permission_engine/adapters/activity_permissions_registry/memory.rb
|
88
|
+
- lib/activity_permission_engine/allow_activity.rb
|
89
|
+
- lib/activity_permission_engine/check_authorization.rb
|
90
|
+
- lib/activity_permission_engine/disallow_activity.rb
|
91
|
+
- lib/activity_permission_engine/framework/request.rb
|
92
|
+
- lib/activity_permission_engine/interface_helpers.rb
|
93
|
+
- lib/activity_permission_engine/list_activities.rb
|
94
|
+
- lib/activity_permission_engine/list_activities_permissions.rb
|
95
|
+
- lib/activity_permission_engine/register_activity.rb
|
96
|
+
- lib/activity_permission_engine/test_helpers/activity_permissions_registry_test.rb
|
97
|
+
- lib/activity_permission_engine/unregister_activity.rb
|
98
|
+
- lib/activity_permission_engine/version.rb
|
99
|
+
- test/adapters/activities_registry/memory_test.rb
|
100
|
+
- test/functionnals/activity_permission_engine_test.rb
|
101
|
+
- test/interface_specifications/allow_activity_test.rb
|
102
|
+
- test/interface_specifications/check_authorization_test.rb
|
103
|
+
- test/interface_specifications/disallow_activity_test.rb
|
104
|
+
- test/interface_specifications/list_activities_permissions_test.rb
|
105
|
+
- test/interface_specifications/list_activities_test.rb
|
106
|
+
- test/interface_specifications/register_activity_test.rb
|
107
|
+
- test/interface_specifications/unregister_activity_test.rb
|
108
|
+
- test/test_helper.rb
|
109
|
+
homepage: https://github.com/synbioz/activity_permission_engine
|
110
|
+
licenses:
|
111
|
+
- MIT
|
112
|
+
metadata: {}
|
113
|
+
post_install_message:
|
114
|
+
rdoc_options: []
|
115
|
+
require_paths:
|
116
|
+
- lib
|
117
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
118
|
+
requirements:
|
119
|
+
- - ">="
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
version: '0'
|
122
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
123
|
+
requirements:
|
124
|
+
- - ">="
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: '0'
|
127
|
+
requirements: []
|
128
|
+
rubyforge_project:
|
129
|
+
rubygems_version: 2.4.5.1
|
130
|
+
signing_key:
|
131
|
+
specification_version: 4
|
132
|
+
summary: Simple library to manage permissions
|
133
|
+
test_files:
|
134
|
+
- test/adapters/activities_registry/memory_test.rb
|
135
|
+
- test/functionnals/activity_permission_engine_test.rb
|
136
|
+
- test/interface_specifications/allow_activity_test.rb
|
137
|
+
- test/interface_specifications/check_authorization_test.rb
|
138
|
+
- test/interface_specifications/disallow_activity_test.rb
|
139
|
+
- test/interface_specifications/list_activities_permissions_test.rb
|
140
|
+
- test/interface_specifications/list_activities_test.rb
|
141
|
+
- test/interface_specifications/register_activity_test.rb
|
142
|
+
- test/interface_specifications/unregister_activity_test.rb
|
143
|
+
- test/test_helper.rb
|