rubycs-declarative_authorization 0.3.0

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.
Files changed (37) hide show
  1. data/CHANGELOG +70 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +9 -0
  4. data/Rakefile +43 -0
  5. data/app/controllers/authorization_rules_controller.rb +114 -0
  6. data/app/controllers/authorization_usages_controller.rb +23 -0
  7. data/app/helpers/authorization_rules_helper.rb +100 -0
  8. data/app/views/authorization_rules/graph.dot.erb +49 -0
  9. data/app/views/authorization_rules/graph.html.erb +39 -0
  10. data/app/views/authorization_rules/index.html.erb +16 -0
  11. data/app/views/authorization_usages/index.html.erb +45 -0
  12. data/authorization_rules.dist.rb +20 -0
  13. data/config/locales/en.declarative_authorization.yml +35 -0
  14. data/config/locales/ro.declarative_authorization.yml +35 -0
  15. data/config/routes.rb +6 -0
  16. data/garlic_example.rb +20 -0
  17. data/init.rb +5 -0
  18. data/lib/declarative_authorization.rb +15 -0
  19. data/lib/declarative_authorization/authorization.rb +578 -0
  20. data/lib/declarative_authorization/authorization_rules_analyzer.rb +138 -0
  21. data/lib/declarative_authorization/helper.rb +56 -0
  22. data/lib/declarative_authorization/in_controller.rb +343 -0
  23. data/lib/declarative_authorization/in_model.rb +125 -0
  24. data/lib/declarative_authorization/maintenance.rb +174 -0
  25. data/lib/declarative_authorization/obligation_scope.rb +292 -0
  26. data/lib/declarative_authorization/rails_legacy.rb +14 -0
  27. data/lib/declarative_authorization/reader.rb +430 -0
  28. data/test/authorization_rules_analyzer_test.rb +123 -0
  29. data/test/authorization_test.rb +779 -0
  30. data/test/controller_test.rb +361 -0
  31. data/test/dsl_reader_test.rb +157 -0
  32. data/test/helper_test.rb +133 -0
  33. data/test/maintenance_test.rb +15 -0
  34. data/test/model_test.rb +1143 -0
  35. data/test/schema.sql +53 -0
  36. data/test/test_helper.rb +99 -0
  37. metadata +97 -0
data/test/schema.sql ADDED
@@ -0,0 +1,53 @@
1
+ CREATE TABLE 'test_models' (
2
+ 'id' INTEGER PRIMARY KEY NOT NULL,
3
+ 'test_attr_through_id' INTEGER,
4
+ 'content' text,
5
+ 'country_id' integer,
6
+ 'created_at' datetime,
7
+ 'updated_at' datetime
8
+ );
9
+
10
+ CREATE TABLE 'test_attrs' (
11
+ 'id' INTEGER PRIMARY KEY NOT NULL,
12
+ 'test_model_id' integer,
13
+ 'test_another_model_id' integer,
14
+ 'test_a_third_model_id' integer,
15
+ 'branch_id' integer,
16
+ 'company_id' integer,
17
+ 'test_attr_through_id' INTEGER,
18
+ 'n_way_join_item_id' INTEGER,
19
+ 'test_model_security_model_id' integer,
20
+ 'attr' integer default 1
21
+ );
22
+
23
+ CREATE TABLE 'test_attr_throughs' (
24
+ 'id' INTEGER PRIMARY KEY NOT NULL,
25
+ 'test_attr_id' integer
26
+ );
27
+
28
+ CREATE TABLE 'test_model_security_models' (
29
+ 'id' INTEGER PRIMARY KEY NOT NULL,
30
+ 'attr' integer default 1,
31
+ 'attr_2' integer default 1
32
+ );
33
+
34
+ CREATE TABLE 'n_way_join_items' (
35
+ 'id' INTEGER PRIMARY KEY NOT NULL
36
+ );
37
+
38
+ CREATE TABLE 'branches' (
39
+ 'id' INTEGER PRIMARY KEY NOT NULL,
40
+ 'company_id' integer,
41
+ 'name' text
42
+ );
43
+
44
+ CREATE TABLE 'companies' (
45
+ 'id' INTEGER PRIMARY KEY NOT NULL,
46
+ 'country_id' integer,
47
+ 'name' text
48
+ );
49
+
50
+ CREATE TABLE 'countries' (
51
+ 'id' INTEGER PRIMARY KEY NOT NULL,
52
+ 'name' text
53
+ );
@@ -0,0 +1,99 @@
1
+ require 'test/unit'
2
+ RAILS_ROOT = File.join(File.dirname(__FILE__), %w{.. .. .. ..})
3
+ require File.join(File.dirname(__FILE__), %w{.. lib declarative_authorization rails_legacy})
4
+ require File.join(File.dirname(__FILE__), %w{.. lib declarative_authorization authorization})
5
+ require File.join(File.dirname(__FILE__), %w{.. lib declarative_authorization in_controller})
6
+
7
+ unless defined?(ActiveRecord)
8
+ if File.directory? RAILS_ROOT + 'config'
9
+ puts 'using config/boot.rb'
10
+ ENV['RAILS_ENV'] = 'test'
11
+ require File.join(RAILS_ROOT, 'config', 'boot.rb')
12
+ else
13
+ # simply use installed gems if available
14
+ puts 'using rubygems'
15
+ require 'rubygems'
16
+ gem 'actionpack'; gem 'activerecord'; gem 'activesupport'; gem 'rails'
17
+ end
18
+
19
+ %w(action_pack action_controller active_record active_support initializer).each {|f| require f}
20
+ end
21
+
22
+ begin
23
+ require 'ruby-debug'
24
+ rescue MissingSourceFile; end
25
+
26
+
27
+ class MockDataObject
28
+ def initialize (attrs = {})
29
+ attrs.each do |key, value|
30
+ instance_variable_set(:"@#{key}", value)
31
+ self.class.class_eval do
32
+ attr_reader key
33
+ end
34
+ end
35
+ end
36
+
37
+ def descends_from_active_record?
38
+ true
39
+ end
40
+
41
+ def self.table_name
42
+ "mocks"
43
+ end
44
+ end
45
+
46
+ class MockUser < MockDataObject
47
+ def initialize (*roles)
48
+ options = roles.last.is_a?(::Hash) ? roles.pop : {}
49
+ super(options.merge(:role_symbols => roles))
50
+ end
51
+ end
52
+
53
+ class MocksController < ActionController::Base
54
+ attr_accessor :current_user
55
+ attr_writer :authorization_engine
56
+
57
+ def authorized?
58
+ !!@authorized
59
+ end
60
+
61
+ def self.define_action_methods (*methods)
62
+ methods.each do |method|
63
+ define_method method do
64
+ @authorized = true
65
+ render :text => 'nothing'
66
+ end
67
+ end
68
+ end
69
+
70
+ def logger (*args)
71
+ Class.new do
72
+ def warn(*args)
73
+ #p args
74
+ end
75
+ alias_method :info, :warn
76
+ def warn?; end
77
+ alias_method :info?, :warn?
78
+ end.new
79
+ end
80
+ end
81
+
82
+ ActionController::Routing::Routes.draw do |map|
83
+ map.connect ':controller/:action/:id'
84
+ end
85
+ ActionController::Base.send :include, Authorization::AuthorizationInController
86
+ require "action_controller/test_process"
87
+
88
+ class Test::Unit::TestCase
89
+ def request! (user, action, reader, params = {})
90
+ action = action.to_sym if action.is_a?(String)
91
+ @controller.current_user = user
92
+ @controller.authorization_engine = Authorization::Engine.new(reader)
93
+
94
+ ((params.delete(:clear) || []) + [:@authorized]).each do |var|
95
+ @controller.instance_variable_set(var, nil)
96
+ end
97
+ get action, params
98
+ end
99
+ end
metadata ADDED
@@ -0,0 +1,97 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rubycs-declarative_authorization
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.0
5
+ platform: ruby
6
+ authors:
7
+ - rubycs
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-05-16 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rails
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 2.1.0
24
+ version:
25
+ description:
26
+ email: rubycs@clair.ro
27
+ executables: []
28
+
29
+ extensions: []
30
+
31
+ extra_rdoc_files: []
32
+
33
+ files:
34
+ - CHANGELOG
35
+ - MIT-LICENSE
36
+ - README.rdoc
37
+ - Rakefile
38
+ - authorization_rules.dist.rb
39
+ - garlic_example.rb
40
+ - init.rb
41
+ - app/controllers/authorization_rules_controller.rb
42
+ - app/controllers/authorization_usages_controller.rb
43
+ - app/helpers/authorization_rules_helper.rb
44
+ - app/views/authorization_usages/index.html.erb
45
+ - app/views/authorization_rules/index.html.erb
46
+ - app/views/authorization_rules/graph.dot.erb
47
+ - app/views/authorization_rules/graph.html.erb
48
+ - config/routes.rb
49
+ - config/locales/en.declarative_authorization.yml
50
+ - config/locales/ro.declarative_authorization.yml
51
+ - lib/declarative_authorization.rb
52
+ - lib/declarative_authorization/in_controller.rb
53
+ - lib/declarative_authorization/reader.rb
54
+ - lib/declarative_authorization/rails_legacy.rb
55
+ - lib/declarative_authorization/obligation_scope.rb
56
+ - lib/declarative_authorization/in_model.rb
57
+ - lib/declarative_authorization/helper.rb
58
+ - lib/declarative_authorization/authorization_rules_analyzer.rb
59
+ - lib/declarative_authorization/authorization.rb
60
+ - lib/declarative_authorization/maintenance.rb
61
+ - test/authorization_test.rb
62
+ - test/schema.sql
63
+ - test/maintenance_test.rb
64
+ - test/model_test.rb
65
+ - test/controller_test.rb
66
+ - test/helper_test.rb
67
+ - test/dsl_reader_test.rb
68
+ - test/test_helper.rb
69
+ - test/authorization_rules_analyzer_test.rb
70
+ has_rdoc: true
71
+ homepage: http://github.com/rubycs/declarative_authorization
72
+ post_install_message:
73
+ rdoc_options: []
74
+
75
+ require_paths:
76
+ - lib
77
+ required_ruby_version: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: 1.8.6
82
+ version:
83
+ required_rubygems_version: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: "0"
88
+ version:
89
+ requirements: []
90
+
91
+ rubyforge_project:
92
+ rubygems_version: 1.2.0
93
+ signing_key:
94
+ specification_version: 2
95
+ summary: "A fork of Steffen Bartsch\xE2\x80\x99s declarative_authorization equipped with localization based on Rails default I18n."
96
+ test_files: []
97
+