lockdown 1.3.1 → 1.3.2
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.
- data/.gitignore +6 -0
- data/Rakefile +20 -25
- data/VERSION +1 -0
- data/lib/lockdown/database.rb +15 -9
- data/lib/lockdown/errors.rb +2 -0
- data/lib/lockdown/rules.rb +0 -2
- data/lib/lockdown.rb +53 -47
- data/lockdown.gemspec +119 -0
- data/spec/lockdown/database_spec.rb +4 -1
- metadata +23 -24
- data/tasks/ann.rake +0 -80
- data/tasks/bones.rake +0 -20
- data/tasks/gem.rake +0 -201
- data/tasks/git.rake +0 -40
- data/tasks/notes.rake +0 -27
- data/tasks/post_load.rake +0 -34
- data/tasks/rdoc.rake +0 -51
- data/tasks/rubyforge.rake +0 -55
- data/tasks/setup.rb +0 -292
- data/tasks/spec.rake +0 -54
- data/tasks/svn.rake +0 -47
- data/tasks/test.rake +0 -40
- data/tasks/zentest.rake +0 -36
data/.gitignore
ADDED
data/Rakefile
CHANGED
@@ -1,16 +1,7 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
begin
|
6
|
-
require 'bones'
|
7
|
-
Bones.setup
|
8
|
-
rescue LoadError
|
9
|
-
load 'tasks/setup.rb'
|
10
|
-
end
|
11
|
-
|
12
|
-
ensure_in_path 'lib'
|
13
|
-
require 'lockdown'
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
require 'rcov'
|
4
|
+
require 'spec/rake/spectask'
|
14
5
|
|
15
6
|
task :default => 'rcov'
|
16
7
|
|
@@ -27,15 +18,19 @@ Spec::Rake::SpecTask.new(:rcov) do |t|
|
|
27
18
|
t.rcov_opts = IO.readlines("spec/rcov.opts").map {|l| l.chomp.split " "}.flatten
|
28
19
|
end
|
29
20
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
21
|
+
begin
|
22
|
+
require 'jeweler'
|
23
|
+
Jeweler::Tasks.new do |gemspec|
|
24
|
+
gemspec.name = "lockdown"
|
25
|
+
gemspec.rubyforge_project = "lockdown"
|
26
|
+
gemspec.summary = "Authorization system for Rails 2.x"
|
27
|
+
gemspec.description = "Restrict access to your controller actions. Supports basic model level restrictions as well"
|
28
|
+
gemspec.email = "andy@stonean.com"
|
29
|
+
gemspec.homepage = "http://stonean.com/wiki/lockdown"
|
30
|
+
gemspec.authors = ["Andrew Stone"]
|
31
|
+
gemspec.add_development_dependency('rspec')
|
32
|
+
end
|
33
|
+
Jeweler::GemcutterTasks.new
|
34
|
+
rescue LoadError
|
35
|
+
puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
|
36
|
+
end
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
1.3.2
|
data/lib/lockdown/database.rb
CHANGED
@@ -11,7 +11,7 @@ module Lockdown
|
|
11
11
|
@user_groups = Lockdown::System.get_user_groups
|
12
12
|
|
13
13
|
unless ::Permission.table_exists? && Lockdown.user_group_class.table_exists?
|
14
|
-
|
14
|
+
Lockdown.logger.info ">> Lockdown tables not found. Skipping database sync."
|
15
15
|
return
|
16
16
|
end
|
17
17
|
create_new_permissions
|
@@ -20,7 +20,7 @@ module Lockdown
|
|
20
20
|
|
21
21
|
maintain_user_groups
|
22
22
|
rescue Exception => e
|
23
|
-
|
23
|
+
Lockdown.logger.error ">> Lockdown sync failed: #{e.backtrace.join("\n")}"
|
24
24
|
end
|
25
25
|
|
26
26
|
# Create permissions not found in the database
|
@@ -30,7 +30,7 @@ module Lockdown
|
|
30
30
|
str = Lockdown.get_string(key)
|
31
31
|
p = ::Permission.find(:first, :conditions => ["name = ?", str])
|
32
32
|
unless p
|
33
|
-
|
33
|
+
Lockdown.logger.info ">> Lockdown: Permission not found in db: #{str}, creating."
|
34
34
|
::Permission.create(:name => str)
|
35
35
|
end
|
36
36
|
end
|
@@ -41,7 +41,7 @@ module Lockdown
|
|
41
41
|
db_perms = ::Permission.find(:all).dup
|
42
42
|
db_perms.each do |dbp|
|
43
43
|
unless @permissions.include?(Lockdown.get_symbol(dbp.name))
|
44
|
-
|
44
|
+
Lockdown.logger.info ">> Lockdown: Permission no longer in init.rb: #{dbp.name}, deleting."
|
45
45
|
ug_table = Lockdown.user_groups_hbtm_reference.to_s
|
46
46
|
if "permissions" < ug_table
|
47
47
|
join_table = "permissions_#{ug_table}"
|
@@ -71,12 +71,18 @@ module Lockdown
|
|
71
71
|
end
|
72
72
|
|
73
73
|
def create_user_group(name_str, key)
|
74
|
-
|
74
|
+
Lockdown.logger.info ">> Lockdown: #{Lockdown::System.fetch(:user_group_model)} not in the db: #{name_str}, creating."
|
75
75
|
ug = Lockdown.user_group_class.create(:name => name_str)
|
76
76
|
#Inefficient, definitely, but shouldn't have any issues across orms.
|
77
|
+
#
|
77
78
|
Lockdown::System.permissions_for_user_group(key).each do |perm|
|
78
|
-
|
79
|
-
|
79
|
+
|
80
|
+
if Lockdown::System.permission_assigned_automatically?(perm)
|
81
|
+
Lockdown.logger.info ">> Permission #{perm} cannot be assigned to #{name_str}. Already belongs to built in user group (public or protected)."
|
82
|
+
raise InvalidPermissionAssignment, "Invalid permission assignment"
|
83
|
+
end
|
84
|
+
|
85
|
+
p = ::Permission.find(:first, :conditions => ["name = ?", Lockdown.get_string(perm)])
|
80
86
|
|
81
87
|
ug_table = Lockdown.user_groups_hbtm_reference.to_s
|
82
88
|
if "permissions" < ug_table
|
@@ -93,7 +99,7 @@ module Lockdown
|
|
93
99
|
perm_sym = Lockdown.get_symbol(perm)
|
94
100
|
perm_string = Lockdown.get_string(perm)
|
95
101
|
unless Lockdown::System.permissions_for_user_group(key).include?(perm_sym)
|
96
|
-
|
102
|
+
Lockdown.logger.info ">> Lockdown: Permission: #{perm_string} no longer associated to User Group: #{ug.name}, deleting."
|
97
103
|
ug.permissions.delete(perm)
|
98
104
|
end
|
99
105
|
end
|
@@ -109,7 +115,7 @@ module Lockdown
|
|
109
115
|
end
|
110
116
|
# if not found, add it
|
111
117
|
unless found
|
112
|
-
|
118
|
+
Lockdown.logger.info ">> Lockdown: Permission: #{perm_string} not found for User Group: #{ug.name}, adding it."
|
113
119
|
p = ::Permission.find(:first, :conditions => ["name = ?", perm_string])
|
114
120
|
ug.permissions << p
|
115
121
|
end
|
data/lib/lockdown/errors.rb
CHANGED
data/lib/lockdown/rules.rb
CHANGED
data/lib/lockdown.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
$:.unshift File.dirname(__FILE__)
|
2
2
|
|
3
|
-
require
|
3
|
+
require 'logger'
|
4
4
|
|
5
|
+
require File.join("lockdown", "errors")
|
5
6
|
require File.join("lockdown", "helper")
|
6
7
|
require File.join("lockdown", "session")
|
7
8
|
require File.join("lockdown", "context")
|
@@ -9,69 +10,74 @@ require File.join("lockdown", "permission")
|
|
9
10
|
require File.join("lockdown", "database")
|
10
11
|
require File.join("lockdown", "rules")
|
11
12
|
require File.join("lockdown", "system")
|
12
|
-
|
13
13
|
require File.join("lockdown", "references")
|
14
14
|
|
15
15
|
module Lockdown
|
16
16
|
extend Lockdown::References
|
17
17
|
extend Lockdown::Helper
|
18
18
|
|
19
|
-
|
20
|
-
VERSION = '1.3.1'
|
19
|
+
VERSION = '1.3.2'
|
21
20
|
|
22
|
-
|
23
|
-
|
24
|
-
VERSION
|
25
|
-
end
|
21
|
+
class << self
|
22
|
+
attr_accessor :logger
|
26
23
|
|
27
|
-
|
28
|
-
version
|
29
|
-
|
24
|
+
# Returns the version string for the library.
|
25
|
+
def version
|
26
|
+
VERSION
|
27
|
+
end
|
30
28
|
|
31
|
-
|
32
|
-
|
33
|
-
|
29
|
+
def major_version
|
30
|
+
version.split('.')[0].to_i
|
31
|
+
end
|
34
32
|
|
35
|
-
|
36
|
-
|
37
|
-
|
33
|
+
def minor_version
|
34
|
+
version.split('.')[1].to_i
|
35
|
+
end
|
38
36
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
unless mixin_resource?("orms")
|
43
|
-
raise NotImplementedError, "ORM unknown to Lockdown!"
|
44
|
-
end
|
37
|
+
def patch_version
|
38
|
+
version.split('.')[2].to_i
|
39
|
+
end
|
45
40
|
|
46
|
-
|
47
|
-
|
48
|
-
|
41
|
+
# Mixin Lockdown code to the appropriate framework and ORM
|
42
|
+
def mixin
|
43
|
+
if mixin_resource?("frameworks")
|
44
|
+
unless mixin_resource?("orms")
|
45
|
+
raise NotImplementedError, "ORM unknown to Lockdown!"
|
46
|
+
end
|
47
|
+
|
48
|
+
if File.exists?(Lockdown.init_file)
|
49
|
+
Lockdown.logger.info "=> Requiring Lockdown rules engine: #{Lockdown.init_file} \n"
|
50
|
+
require Lockdown.init_file
|
51
|
+
else
|
52
|
+
Lockdown.logger.info "=> Note:: Lockdown couldn't find init file: #{Lockdown.init_file}\n"
|
53
|
+
end
|
49
54
|
else
|
50
|
-
|
55
|
+
Lockdown.logger.info "=> Note:: Lockdown cannot determine framework and therefore is not active.\n"
|
51
56
|
end
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
include module_class
|
67
|
-
return true
|
57
|
+
end # mixin
|
58
|
+
|
59
|
+
private
|
60
|
+
|
61
|
+
def mixin_resource?(str)
|
62
|
+
wildcard_path = File.join( File.dirname(__FILE__), 'lockdown', str , '*.rb' )
|
63
|
+
Dir[wildcard_path].each do |f|
|
64
|
+
require f
|
65
|
+
module_name = File.basename(f).split(".")[0]
|
66
|
+
module_class = eval("Lockdown::#{str.capitalize}::#{Lockdown.camelize(module_name)}")
|
67
|
+
if module_class.use_me?
|
68
|
+
include module_class
|
69
|
+
return true
|
70
|
+
end
|
68
71
|
end
|
69
|
-
|
70
|
-
|
71
|
-
end #
|
72
|
+
false
|
73
|
+
end # mixin_resource?
|
74
|
+
end # class block
|
75
|
+
|
76
|
+
self.logger = Logger.new(STDOUT)
|
77
|
+
|
72
78
|
end # Lockdown
|
73
79
|
|
74
|
-
|
80
|
+
Lockdown.logger.info "=> Mixing in Lockdown version: #{Lockdown.version} \n"
|
75
81
|
Lockdown.mixin
|
76
82
|
|
77
83
|
|
data/lockdown.gemspec
ADDED
@@ -0,0 +1,119 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{lockdown}
|
8
|
+
s.version = "1.3.2"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Andrew Stone"]
|
12
|
+
s.date = %q{2009-10-17}
|
13
|
+
s.description = %q{Restrict access to your controller actions. Supports basic model level restrictions as well}
|
14
|
+
s.email = %q{andy@stonean.com}
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"README.txt"
|
17
|
+
]
|
18
|
+
s.files = [
|
19
|
+
".gitignore",
|
20
|
+
"History.txt",
|
21
|
+
"README.txt",
|
22
|
+
"Rakefile",
|
23
|
+
"VERSION",
|
24
|
+
"lib/lockdown.rb",
|
25
|
+
"lib/lockdown/context.rb",
|
26
|
+
"lib/lockdown/database.rb",
|
27
|
+
"lib/lockdown/errors.rb",
|
28
|
+
"lib/lockdown/frameworks/rails.rb",
|
29
|
+
"lib/lockdown/frameworks/rails/controller.rb",
|
30
|
+
"lib/lockdown/frameworks/rails/view.rb",
|
31
|
+
"lib/lockdown/helper.rb",
|
32
|
+
"lib/lockdown/orms/active_record.rb",
|
33
|
+
"lib/lockdown/permission.rb",
|
34
|
+
"lib/lockdown/references.rb",
|
35
|
+
"lib/lockdown/rspec_helper.rb",
|
36
|
+
"lib/lockdown/rules.rb",
|
37
|
+
"lib/lockdown/session.rb",
|
38
|
+
"lib/lockdown/system.rb",
|
39
|
+
"lockdown.gemspec",
|
40
|
+
"rails_generators/lockdown/lockdown_generator.rb",
|
41
|
+
"rails_generators/lockdown/templates/app/controllers/permissions_controller.rb",
|
42
|
+
"rails_generators/lockdown/templates/app/controllers/sessions_controller.rb",
|
43
|
+
"rails_generators/lockdown/templates/app/controllers/user_groups_controller.rb",
|
44
|
+
"rails_generators/lockdown/templates/app/controllers/users_controller.rb",
|
45
|
+
"rails_generators/lockdown/templates/app/helpers/permissions_helper.rb",
|
46
|
+
"rails_generators/lockdown/templates/app/helpers/user_groups_helper.rb",
|
47
|
+
"rails_generators/lockdown/templates/app/helpers/users_helper.rb",
|
48
|
+
"rails_generators/lockdown/templates/app/models/permission.rb",
|
49
|
+
"rails_generators/lockdown/templates/app/models/profile.rb",
|
50
|
+
"rails_generators/lockdown/templates/app/models/user.rb",
|
51
|
+
"rails_generators/lockdown/templates/app/models/user_group.rb",
|
52
|
+
"rails_generators/lockdown/templates/app/views/permissions/index.html.erb",
|
53
|
+
"rails_generators/lockdown/templates/app/views/permissions/show.html.erb",
|
54
|
+
"rails_generators/lockdown/templates/app/views/sessions/new.html.erb",
|
55
|
+
"rails_generators/lockdown/templates/app/views/user_groups/edit.html.erb",
|
56
|
+
"rails_generators/lockdown/templates/app/views/user_groups/index.html.erb",
|
57
|
+
"rails_generators/lockdown/templates/app/views/user_groups/new.html.erb",
|
58
|
+
"rails_generators/lockdown/templates/app/views/user_groups/show.html.erb",
|
59
|
+
"rails_generators/lockdown/templates/app/views/users/edit.html.erb",
|
60
|
+
"rails_generators/lockdown/templates/app/views/users/index.html.erb",
|
61
|
+
"rails_generators/lockdown/templates/app/views/users/new.html.erb",
|
62
|
+
"rails_generators/lockdown/templates/app/views/users/show.html.erb",
|
63
|
+
"rails_generators/lockdown/templates/config/initializers/lockit.rb",
|
64
|
+
"rails_generators/lockdown/templates/db/migrate/create_admin_user.rb",
|
65
|
+
"rails_generators/lockdown/templates/db/migrate/create_permissions.rb",
|
66
|
+
"rails_generators/lockdown/templates/db/migrate/create_profiles.rb",
|
67
|
+
"rails_generators/lockdown/templates/db/migrate/create_user_groups.rb",
|
68
|
+
"rails_generators/lockdown/templates/db/migrate/create_users.rb",
|
69
|
+
"rails_generators/lockdown/templates/lib/lockdown/README",
|
70
|
+
"rails_generators/lockdown/templates/lib/lockdown/init.rb",
|
71
|
+
"spec/lockdown/context_spec.rb",
|
72
|
+
"spec/lockdown/database_spec.rb",
|
73
|
+
"spec/lockdown/frameworks/rails/controller_spec.rb",
|
74
|
+
"spec/lockdown/frameworks/rails/view_spec.rb",
|
75
|
+
"spec/lockdown/frameworks/rails_spec.rb",
|
76
|
+
"spec/lockdown/permission_spec.rb",
|
77
|
+
"spec/lockdown/rspec_helper_spec.rb",
|
78
|
+
"spec/lockdown/rules_spec.rb",
|
79
|
+
"spec/lockdown/session_spec.rb",
|
80
|
+
"spec/lockdown/system_spec.rb",
|
81
|
+
"spec/lockdown_spec.rb",
|
82
|
+
"spec/rcov.opts",
|
83
|
+
"spec/spec.opts",
|
84
|
+
"spec/spec_helper.rb"
|
85
|
+
]
|
86
|
+
s.homepage = %q{http://stonean.com/wiki/lockdown}
|
87
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
88
|
+
s.require_paths = ["lib"]
|
89
|
+
s.rubyforge_project = %q{lockdown}
|
90
|
+
s.rubygems_version = %q{1.3.5}
|
91
|
+
s.summary = %q{Authorization system for Rails 2.x}
|
92
|
+
s.test_files = [
|
93
|
+
"spec/lockdown/context_spec.rb",
|
94
|
+
"spec/lockdown/database_spec.rb",
|
95
|
+
"spec/lockdown/frameworks/rails/controller_spec.rb",
|
96
|
+
"spec/lockdown/frameworks/rails/view_spec.rb",
|
97
|
+
"spec/lockdown/frameworks/rails_spec.rb",
|
98
|
+
"spec/lockdown/permission_spec.rb",
|
99
|
+
"spec/lockdown/rspec_helper_spec.rb",
|
100
|
+
"spec/lockdown/rules_spec.rb",
|
101
|
+
"spec/lockdown/session_spec.rb",
|
102
|
+
"spec/lockdown/system_spec.rb",
|
103
|
+
"spec/lockdown_spec.rb",
|
104
|
+
"spec/spec_helper.rb"
|
105
|
+
]
|
106
|
+
|
107
|
+
if s.respond_to? :specification_version then
|
108
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
109
|
+
s.specification_version = 3
|
110
|
+
|
111
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
112
|
+
s.add_development_dependency(%q<rspec>, [">= 0"])
|
113
|
+
else
|
114
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
115
|
+
end
|
116
|
+
else
|
117
|
+
s.add_dependency(%q<rspec>, [">= 0"])
|
118
|
+
end
|
119
|
+
end
|
@@ -68,7 +68,7 @@ describe Lockdown::Database do
|
|
68
68
|
it "should sync user group permissions for existing user group" do
|
69
69
|
ug = mock('user group')
|
70
70
|
|
71
|
-
|
71
|
+
@user_group_class.should_receive(:find).
|
72
72
|
with(:first, :conditions => ["name = ?", "User Group"]).
|
73
73
|
and_return(ug)
|
74
74
|
|
@@ -94,6 +94,9 @@ describe Lockdown::Database do
|
|
94
94
|
Lockdown::System.stub!(:permissions_for_user_group).
|
95
95
|
and_return([:perm])
|
96
96
|
|
97
|
+
Lockdown::System.stub!(:permission_assigned_automatically?).
|
98
|
+
and_return(false)
|
99
|
+
|
97
100
|
perm = mock('permission')
|
98
101
|
perm.stub!(:id).and_return(3344)
|
99
102
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lockdown
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Stone
|
@@ -9,32 +9,33 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-10-17 00:00:00 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
|
-
name:
|
16
|
+
name: rspec
|
17
17
|
type: :development
|
18
18
|
version_requirement:
|
19
19
|
version_requirements: !ruby/object:Gem::Requirement
|
20
20
|
requirements:
|
21
21
|
- - ">="
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version:
|
23
|
+
version: "0"
|
24
24
|
version:
|
25
|
-
description:
|
25
|
+
description: Restrict access to your controller actions. Supports basic model level restrictions as well
|
26
26
|
email: andy@stonean.com
|
27
27
|
executables: []
|
28
28
|
|
29
29
|
extensions: []
|
30
30
|
|
31
31
|
extra_rdoc_files:
|
32
|
-
- History.txt
|
33
32
|
- README.txt
|
34
33
|
files:
|
34
|
+
- .gitignore
|
35
35
|
- History.txt
|
36
36
|
- README.txt
|
37
37
|
- Rakefile
|
38
|
+
- VERSION
|
38
39
|
- lib/lockdown.rb
|
39
40
|
- lib/lockdown/context.rb
|
40
41
|
- lib/lockdown/database.rb
|
@@ -50,6 +51,7 @@ files:
|
|
50
51
|
- lib/lockdown/rules.rb
|
51
52
|
- lib/lockdown/session.rb
|
52
53
|
- lib/lockdown/system.rb
|
54
|
+
- lockdown.gemspec
|
53
55
|
- rails_generators/lockdown/lockdown_generator.rb
|
54
56
|
- rails_generators/lockdown/templates/app/controllers/permissions_controller.rb
|
55
57
|
- rails_generators/lockdown/templates/app/controllers/sessions_controller.rb
|
@@ -95,27 +97,13 @@ files:
|
|
95
97
|
- spec/rcov.opts
|
96
98
|
- spec/spec.opts
|
97
99
|
- spec/spec_helper.rb
|
98
|
-
- tasks/ann.rake
|
99
|
-
- tasks/bones.rake
|
100
|
-
- tasks/gem.rake
|
101
|
-
- tasks/git.rake
|
102
|
-
- tasks/notes.rake
|
103
|
-
- tasks/post_load.rake
|
104
|
-
- tasks/rdoc.rake
|
105
|
-
- tasks/rubyforge.rake
|
106
|
-
- tasks/setup.rb
|
107
|
-
- tasks/spec.rake
|
108
|
-
- tasks/svn.rake
|
109
|
-
- tasks/test.rake
|
110
|
-
- tasks/zentest.rake
|
111
100
|
has_rdoc: true
|
112
101
|
homepage: http://stonean.com/wiki/lockdown
|
113
102
|
licenses: []
|
114
103
|
|
115
104
|
post_install_message:
|
116
105
|
rdoc_options:
|
117
|
-
- --
|
118
|
-
- README.txt
|
106
|
+
- --charset=UTF-8
|
119
107
|
require_paths:
|
120
108
|
- lib
|
121
109
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -136,6 +124,17 @@ rubyforge_project: lockdown
|
|
136
124
|
rubygems_version: 1.3.5
|
137
125
|
signing_key:
|
138
126
|
specification_version: 3
|
139
|
-
summary:
|
140
|
-
test_files:
|
141
|
-
|
127
|
+
summary: Authorization system for Rails 2.x
|
128
|
+
test_files:
|
129
|
+
- spec/lockdown/context_spec.rb
|
130
|
+
- spec/lockdown/database_spec.rb
|
131
|
+
- spec/lockdown/frameworks/rails/controller_spec.rb
|
132
|
+
- spec/lockdown/frameworks/rails/view_spec.rb
|
133
|
+
- spec/lockdown/frameworks/rails_spec.rb
|
134
|
+
- spec/lockdown/permission_spec.rb
|
135
|
+
- spec/lockdown/rspec_helper_spec.rb
|
136
|
+
- spec/lockdown/rules_spec.rb
|
137
|
+
- spec/lockdown/session_spec.rb
|
138
|
+
- spec/lockdown/system_spec.rb
|
139
|
+
- spec/lockdown_spec.rb
|
140
|
+
- spec/spec_helper.rb
|
data/tasks/ann.rake
DELETED
@@ -1,80 +0,0 @@
|
|
1
|
-
|
2
|
-
begin
|
3
|
-
require 'bones/smtp_tls'
|
4
|
-
rescue LoadError
|
5
|
-
require 'net/smtp'
|
6
|
-
end
|
7
|
-
require 'time'
|
8
|
-
|
9
|
-
namespace :ann do
|
10
|
-
|
11
|
-
# A prerequisites task that all other tasks depend upon
|
12
|
-
task :prereqs
|
13
|
-
|
14
|
-
file PROJ.ann.file do
|
15
|
-
ann = PROJ.ann
|
16
|
-
puts "Generating #{ann.file}"
|
17
|
-
File.open(ann.file,'w') do |fd|
|
18
|
-
fd.puts("#{PROJ.name} version #{PROJ.version}")
|
19
|
-
fd.puts(" by #{Array(PROJ.authors).first}") if PROJ.authors
|
20
|
-
fd.puts(" #{PROJ.url}") if PROJ.url.valid?
|
21
|
-
fd.puts(" (the \"#{PROJ.release_name}\" release)") if PROJ.release_name
|
22
|
-
fd.puts
|
23
|
-
fd.puts("== DESCRIPTION")
|
24
|
-
fd.puts
|
25
|
-
fd.puts(PROJ.description)
|
26
|
-
fd.puts
|
27
|
-
fd.puts(PROJ.changes.sub(%r/^.*$/, '== CHANGES'))
|
28
|
-
fd.puts
|
29
|
-
ann.paragraphs.each do |p|
|
30
|
-
fd.puts "== #{p.upcase}"
|
31
|
-
fd.puts
|
32
|
-
fd.puts paragraphs_of(PROJ.readme_file, p).join("\n\n")
|
33
|
-
fd.puts
|
34
|
-
end
|
35
|
-
fd.puts ann.text if ann.text
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
desc "Create an announcement file"
|
40
|
-
task :announcement => ['ann:prereqs', PROJ.ann.file]
|
41
|
-
|
42
|
-
desc "Send an email announcement"
|
43
|
-
task :email => ['ann:prereqs', PROJ.ann.file] do
|
44
|
-
ann = PROJ.ann
|
45
|
-
from = ann.email[:from] || Array(PROJ.authors).first || PROJ.email
|
46
|
-
to = Array(ann.email[:to])
|
47
|
-
|
48
|
-
### build a mail header for RFC 822
|
49
|
-
rfc822msg = "From: #{from}\n"
|
50
|
-
rfc822msg << "To: #{to.join(',')}\n"
|
51
|
-
rfc822msg << "Subject: [ANN] #{PROJ.name} #{PROJ.version}"
|
52
|
-
rfc822msg << " (#{PROJ.release_name})" if PROJ.release_name
|
53
|
-
rfc822msg << "\n"
|
54
|
-
rfc822msg << "Date: #{Time.new.rfc822}\n"
|
55
|
-
rfc822msg << "Message-Id: "
|
56
|
-
rfc822msg << "<#{"%.8f" % Time.now.to_f}@#{ann.email[:domain]}>\n\n"
|
57
|
-
rfc822msg << File.read(ann.file)
|
58
|
-
|
59
|
-
params = [:server, :port, :domain, :acct, :passwd, :authtype].map do |key|
|
60
|
-
ann.email[key]
|
61
|
-
end
|
62
|
-
|
63
|
-
params[3] = PROJ.email if params[3].nil?
|
64
|
-
|
65
|
-
if params[4].nil?
|
66
|
-
STDOUT.write "Please enter your e-mail password (#{params[3]}): "
|
67
|
-
params[4] = STDIN.gets.chomp
|
68
|
-
end
|
69
|
-
|
70
|
-
### send email
|
71
|
-
Net::SMTP.start(*params) {|smtp| smtp.sendmail(rfc822msg, from, to)}
|
72
|
-
end
|
73
|
-
end # namespace :ann
|
74
|
-
|
75
|
-
desc 'Alias to ann:announcement'
|
76
|
-
task :ann => 'ann:announcement'
|
77
|
-
|
78
|
-
CLOBBER << PROJ.ann.file
|
79
|
-
|
80
|
-
# EOF
|
data/tasks/bones.rake
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
|
2
|
-
if HAVE_BONES
|
3
|
-
|
4
|
-
namespace :bones do
|
5
|
-
|
6
|
-
desc 'Show the PROJ open struct'
|
7
|
-
task :debug do |t|
|
8
|
-
atr = if t.application.top_level_tasks.length == 2
|
9
|
-
t.application.top_level_tasks.pop
|
10
|
-
end
|
11
|
-
|
12
|
-
if atr then Bones::Debug.show_attr(PROJ, atr)
|
13
|
-
else Bones::Debug.show PROJ end
|
14
|
-
end
|
15
|
-
|
16
|
-
end # namespace :bones
|
17
|
-
|
18
|
-
end # HAVE_BONES
|
19
|
-
|
20
|
-
# EOF
|