patrick-lockdown 2.0.4.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.
@@ -0,0 +1,33 @@
1
+ require 'helper'
2
+
3
+ class H
4
+ include Lockdown::Helper
5
+ end
6
+
7
+ class TestLockdownHelper < MiniTest::Unit::TestCase
8
+
9
+ def setup
10
+ @h = H.new
11
+ end
12
+
13
+ def test_administrator_group_name
14
+ assert_equal 'Administrators', @h.administrator_group_name
15
+ end
16
+
17
+ def test_user_groups_hbtm_reference
18
+ assert_equal :user_groups, @h.user_groups_hbtm_reference
19
+ end
20
+
21
+ def test_user_group_id_reference
22
+ assert_equal 'user_group_id', @h.user_group_id_reference
23
+ end
24
+
25
+ def user_hbtm_reference
26
+ assert_equal :users, @h.users_hbtm_reference
27
+ end
28
+
29
+ def user_id_reference
30
+ assert_equal 'user_id', @h.user_id_reference
31
+ end
32
+ end
33
+
@@ -0,0 +1,73 @@
1
+ require 'helper'
2
+
3
+ class TestLockdownPermission < MiniTest::Unit::TestCase
4
+
5
+ def setup
6
+ @permission = Lockdown::Permission.new(:my_account)
7
+ end
8
+
9
+ def test_initializer_sets_correct_state
10
+ assert_equal 'my_account', @permission.name
11
+ assert_equal [], @permission.resources
12
+ assert_equal false, @permission.public?
13
+ assert_equal false, @permission.protected?
14
+ end
15
+
16
+ def test_setting_public
17
+ @permission.is_public
18
+ assert_equal true, @permission.public?
19
+ assert_equal false, @permission.protected?
20
+ end
21
+
22
+ def test_setting_protected
23
+ @permission.is_protected
24
+ assert_equal true, @permission.protected?
25
+ assert_equal false, @permission.public?
26
+ end
27
+
28
+ def test_resource
29
+ @permission.resource(:users)
30
+
31
+ resource = @permission.resources.first
32
+ assert_equal resource.name, 'users'
33
+ end
34
+
35
+ def test_alias_controller
36
+ @permission.controller(:users)
37
+
38
+ controller = @permission.controllers.first
39
+ assert_equal controller.name, 'users'
40
+ end
41
+
42
+ def test_resource_with_block
43
+ @permission.resource(:users) do
44
+ except :destroy
45
+ end
46
+
47
+ resource = @permission.resources.first
48
+ assert_equal resource.exceptions, ['destroy']
49
+ end
50
+
51
+ def test_alias_controller_with_block
52
+ @permission.controller(:users) do
53
+ except :destroy
54
+ end
55
+
56
+ controller = @permission.controllers.first
57
+ assert_equal controller.exceptions, ['destroy']
58
+ end
59
+
60
+ def test_regex_pattern
61
+ @permission.resource(:users)
62
+
63
+ assert_equal @permission.regex_pattern, "(\/users(\/.*)?)"
64
+ end
65
+
66
+ def test_regex_pattern_with_multiple_resources
67
+ @permission.resource(:users)
68
+ @permission.resource(:posts)
69
+
70
+ assert_equal @permission.regex_pattern, "(\/users(\/.*)?)|(\/posts(\/.*)?)"
71
+ end
72
+ end
73
+
@@ -0,0 +1,47 @@
1
+ require 'helper'
2
+
3
+ class TestLockdownResource < MiniTest::Unit::TestCase
4
+
5
+ def setup
6
+ @resource = Lockdown::Resource.new(:users)
7
+ end
8
+
9
+ def test_initializer_sets_correct_state
10
+ assert_equal @resource.name, 'users'
11
+ assert_equal @resource.regex_pattern, "\/users(\/.*)?"
12
+ end
13
+
14
+ def test_except_sets_correct_regex_pattern
15
+ @resource.except(:destroy)
16
+ assert_equal @resource.regex_pattern, "\/users(?!\/(destroy))(\/.*)?"
17
+ end
18
+
19
+ def test_except_with_multiple_params_sets_correct_regex_pattern
20
+ @resource.except(:index, :destroy)
21
+ assert_equal @resource.regex_pattern, "\/users(?!\/(index|destroy))(\/.*)?"
22
+ end
23
+
24
+ def test_except_with_no_params_preserves_regex_pattern
25
+ resource = Lockdown::Resource.new(:users)
26
+ resource.except()
27
+ assert_equal resource.regex_pattern, "\/users(\/.*)?"
28
+ end
29
+
30
+ def test_only_sets_correct_regex_pattern
31
+ @resource.only(:index)
32
+ assert_equal @resource.regex_pattern, "\/users\/(index)(\/)?"
33
+ end
34
+
35
+ def test_only_with_multiple_params_sets_correct_regex_pattern
36
+ @resource.only(:show, :edit)
37
+ assert_equal @resource.regex_pattern, "\/users\/(show|edit)(\/)?"
38
+ end
39
+
40
+ def test_only_with_no_params_preserves_regex_pattern
41
+ resource = Lockdown::Resource.new(:users)
42
+ resource.only()
43
+ assert_equal resource.regex_pattern, "\/users(\/.*)?"
44
+ end
45
+
46
+ end
47
+
@@ -0,0 +1,31 @@
1
+ require 'helper'
2
+
3
+ class Authorization
4
+ extend Lockdown::Access
5
+ end
6
+
7
+ class S
8
+ include Lockdown::Session
9
+
10
+ attr_accessor :session_access_rights
11
+ end
12
+
13
+ class TestLockdownSession < MiniTest::Unit::TestCase
14
+
15
+ def setup
16
+ Lockdown::Configuration.reset
17
+ @s = S.new
18
+ end
19
+
20
+ def test_access_in_perm
21
+ Authorization.permission :posts
22
+ Authorization.permission :users
23
+ Authorization.public_access :posts
24
+
25
+ @s.session_access_rights = Lockdown::Configuration.public_access
26
+
27
+ assert_equal true , @s.send(:access_in_perm?, 'posts')
28
+ assert_equal false , @s.send(:access_in_perm?, 'users')
29
+ end
30
+ end
31
+
@@ -0,0 +1,17 @@
1
+ require 'helper'
2
+
3
+ class TestLockdownUserGroup < MiniTest::Unit::TestCase
4
+
5
+ def setup
6
+ @user_group = Lockdown::UserGroup.new(:managers)
7
+ @user_group.permissions << Lockdown::Permission.new(:users)
8
+ @user_group.permissions << Lockdown::Permission.new(:accounts)
9
+ end
10
+
11
+ def test_initializer_sets_correct_state
12
+ assert_equal 'managers', @user_group.name
13
+ assert_equal 'accounts', @user_group.permissions.pop.name
14
+ assert_equal 'users', @user_group.permissions.pop.name
15
+ end
16
+ end
17
+
metadata ADDED
@@ -0,0 +1,96 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: patrick-lockdown
3
+ version: !ruby/object:Gem::Version
4
+ hash: 125
5
+ prerelease:
6
+ segments:
7
+ - 2
8
+ - 0
9
+ - 4
10
+ - 1
11
+ version: 2.0.4.1
12
+ platform: ruby
13
+ authors:
14
+ - Andrew Stone
15
+ - Patrick Baselier
16
+ autorequire:
17
+ bindir: bin
18
+ cert_chain: []
19
+
20
+ date: 2012-05-10 00:00:00 +02:00
21
+ default_executable:
22
+ dependencies: []
23
+
24
+ description: "Restrict access to your controller actions. "
25
+ email: patrick.baselier@gmail.com
26
+ executables: []
27
+
28
+ extensions: []
29
+
30
+ extra_rdoc_files:
31
+ - README.md
32
+ files:
33
+ - README.md
34
+ - Rakefile
35
+ - lib/lockdown.rb
36
+ - lib/lockdown/access.rb
37
+ - lib/lockdown/configuration.rb
38
+ - lib/lockdown/database.rb
39
+ - lib/lockdown/delivery.rb
40
+ - lib/lockdown/errors.rb
41
+ - lib/lockdown/frameworks/rails.rb
42
+ - lib/lockdown/frameworks/rails/controller.rb
43
+ - lib/lockdown/frameworks/rails/view.rb
44
+ - lib/lockdown/helper.rb
45
+ - lib/lockdown/orms/active_record.rb
46
+ - lib/lockdown/permission.rb
47
+ - lib/lockdown/resource.rb
48
+ - lib/lockdown/session.rb
49
+ - lib/lockdown/user_group.rb
50
+ - patrick-lockdown.gemspec
51
+ - tags
52
+ - test/helper.rb
53
+ - test/lockdown/test_access.rb
54
+ - test/lockdown/test_configuration.rb
55
+ - test/lockdown/test_delivery.rb
56
+ - test/lockdown/test_helper.rb
57
+ - test/lockdown/test_permission.rb
58
+ - test/lockdown/test_resource.rb
59
+ - test/lockdown/test_session.rb
60
+ - test/lockdown/test_user_group.rb
61
+ has_rdoc: true
62
+ homepage: https://github.com/ludo/patrick-lockdown
63
+ licenses: []
64
+
65
+ post_install_message:
66
+ rdoc_options: []
67
+
68
+ require_paths:
69
+ - lib
70
+ required_ruby_version: !ruby/object:Gem::Requirement
71
+ none: false
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ hash: 3
76
+ segments:
77
+ - 0
78
+ version: "0"
79
+ required_rubygems_version: !ruby/object:Gem::Requirement
80
+ none: false
81
+ requirements:
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ hash: 3
85
+ segments:
86
+ - 0
87
+ version: "0"
88
+ requirements: []
89
+
90
+ rubyforge_project:
91
+ rubygems_version: 1.5.2
92
+ signing_key:
93
+ specification_version: 3
94
+ summary: Authorization system for Rails
95
+ test_files: []
96
+