jakewendt-authorized 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +52 -0
- data/app/controllers/roles_controller.rb +38 -0
- data/app/models/role.rb +34 -0
- data/config/routes.rb +9 -0
- data/generators/authorized/USAGE +0 -0
- data/generators/authorized/authorized_generator.rb +66 -0
- data/generators/authorized/templates/functional/roles_controller_test.rb +142 -0
- data/generators/authorized/templates/migrations/create_roles.rb +14 -0
- data/generators/authorized/templates/migrations/create_roles_users.rb +14 -0
- data/generators/authorized/templates/stylesheets/authorized.css +0 -0
- data/generators/authorized/templates/unit/role_test.rb +29 -0
- data/lib/authorized.rb +45 -0
- data/lib/authorized/authorization.rb +69 -0
- data/lib/authorized/controller.rb +87 -0
- data/lib/authorized/core_extension.rb +16 -0
- data/lib/authorized/factories.rb +15 -0
- data/lib/authorized/factory_test_helper.rb +47 -0
- data/lib/authorized/helper.rb +28 -0
- data/lib/authorized/pending.rb +72 -0
- data/lib/authorized/permissive_controller.rb +25 -0
- data/lib/authorized/resourceful_controller.rb +81 -0
- data/lib/authorized/tasks.rb +1 -0
- data/lib/authorized/user_model.rb +144 -0
- data/lib/tasks/application.rake +40 -0
- data/lib/tasks/database.rake +52 -0
- data/lib/tasks/documentation.rake +68 -0
- data/lib/tasks/rcov.rake +41 -0
- metadata +276 -0
@@ -0,0 +1 @@
|
|
1
|
+
Dir["#{File.dirname(__FILE__)}/../tasks/**/*.rake"].sort.each { |ext| load ext }
|
@@ -0,0 +1,144 @@
|
|
1
|
+
module Authorized
|
2
|
+
module UserModel
|
3
|
+
|
4
|
+
def self.included(base)
|
5
|
+
base.extend(PrepMethod)
|
6
|
+
# base.send(:include, InstanceMethods)
|
7
|
+
# base.class_eval do
|
8
|
+
# alias_method_chain :reset_persistence_token, :uniqueness
|
9
|
+
# end
|
10
|
+
end
|
11
|
+
|
12
|
+
module PrepMethod
|
13
|
+
def authorized(options={})
|
14
|
+
|
15
|
+
include Authorized::UserModel::InstanceMethods
|
16
|
+
extend Authorized::UserModel::ClassMethods
|
17
|
+
|
18
|
+
has_and_belongs_to_many :roles, :uniq => true
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
module ClassMethods
|
24
|
+
|
25
|
+
# def search(options={})
|
26
|
+
# conditions = {}
|
27
|
+
# includes = joins = []
|
28
|
+
# if !options[:role_name].blank?
|
29
|
+
# includes = [:roles]
|
30
|
+
# if Role.all.collect(&:name).include?(options[:role_name])
|
31
|
+
# joins = [:roles]
|
32
|
+
# conditions = ["roles.name = '#{options[:role_name]}'"]
|
33
|
+
# # else
|
34
|
+
# # @errors = "No such role '#{options[:role_name]}'"
|
35
|
+
# end
|
36
|
+
# end
|
37
|
+
# self.all(
|
38
|
+
# :joins => joins,
|
39
|
+
# :include => includes,
|
40
|
+
# :conditions => conditions )
|
41
|
+
# end
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
module InstanceMethods
|
46
|
+
|
47
|
+
def role_names
|
48
|
+
roles.collect(&:name).uniq
|
49
|
+
end
|
50
|
+
|
51
|
+
def deputize
|
52
|
+
roles << Role.find_or_create_by_name('administrator')
|
53
|
+
end
|
54
|
+
|
55
|
+
# The 4 common CCLS roles are ....
|
56
|
+
def is_superuser?(*args)
|
57
|
+
self.role_names.include?('superuser')
|
58
|
+
end
|
59
|
+
alias_method :is_super_user?, :is_superuser?
|
60
|
+
|
61
|
+
def is_administrator?(*args)
|
62
|
+
self.role_names.include?('administrator')
|
63
|
+
end
|
64
|
+
|
65
|
+
def is_editor?(*args)
|
66
|
+
self.role_names.include?('editor')
|
67
|
+
end
|
68
|
+
|
69
|
+
def is_interviewer?(*args)
|
70
|
+
self.role_names.include?('interviewer')
|
71
|
+
end
|
72
|
+
|
73
|
+
def is_reader?(*args)
|
74
|
+
self.role_names.include?('reader')
|
75
|
+
end
|
76
|
+
|
77
|
+
def is_user?(user=nil)
|
78
|
+
!user.nil? && self == user
|
79
|
+
end
|
80
|
+
alias_method :may_be_user?, :is_user?
|
81
|
+
|
82
|
+
def may_administrate?(*args)
|
83
|
+
(self.role_names & ['superuser','administrator']).length > 0
|
84
|
+
end
|
85
|
+
alias_method :may_view_permissions?, :may_administrate?
|
86
|
+
alias_method :may_create_user_invitations?, :may_administrate?
|
87
|
+
alias_method :may_view_users?, :may_administrate?
|
88
|
+
alias_method :may_assign_roles?, :may_administrate?
|
89
|
+
|
90
|
+
def may_edit?(*args)
|
91
|
+
(self.role_names &
|
92
|
+
['superuser','administrator','editor']
|
93
|
+
).length > 0
|
94
|
+
end
|
95
|
+
alias_method :may_maintain_pages?, :may_edit?
|
96
|
+
|
97
|
+
|
98
|
+
# Add tests for may_interview and may_read
|
99
|
+
def may_interview?(*args)
|
100
|
+
(self.role_names &
|
101
|
+
['superuser','administrator','editor','interviewer']
|
102
|
+
).length > 0
|
103
|
+
end
|
104
|
+
|
105
|
+
# This is pretty lame as all current roles can read
|
106
|
+
def may_read?(*args)
|
107
|
+
(self.role_names &
|
108
|
+
['superuser','administrator','editor','interviewer','reader']
|
109
|
+
).length > 0
|
110
|
+
end
|
111
|
+
alias_method :may_view?, :may_read?
|
112
|
+
|
113
|
+
|
114
|
+
|
115
|
+
def may_view_user?(user=nil)
|
116
|
+
self.is_user?(user) || self.may_administrate?
|
117
|
+
end
|
118
|
+
|
119
|
+
|
120
|
+
|
121
|
+
|
122
|
+
def may_share_document?(document=nil)
|
123
|
+
document && (
|
124
|
+
self.is_administrator? ||
|
125
|
+
( document.owner && self == document.owner )
|
126
|
+
)
|
127
|
+
end
|
128
|
+
|
129
|
+
def may_view_document?(document=nil)
|
130
|
+
document
|
131
|
+
|
132
|
+
|
133
|
+
|
134
|
+
|
135
|
+
|
136
|
+
end
|
137
|
+
|
138
|
+
protected
|
139
|
+
|
140
|
+
end
|
141
|
+
|
142
|
+
end
|
143
|
+
end
|
144
|
+
ActiveRecord::Base.send( :include, Authorized::UserModel )
|
@@ -0,0 +1,40 @@
|
|
1
|
+
namespace :app do
|
2
|
+
|
3
|
+
# task :args_as_array do
|
4
|
+
# args = $*.dup.slice(1..-1)
|
5
|
+
# puts args.collect {|arg| "X:" << arg }.join("\n")
|
6
|
+
# exit
|
7
|
+
# end
|
8
|
+
|
9
|
+
desc "Add some expected users."
|
10
|
+
task :add_users => :environment do
|
11
|
+
puts "Adding users"
|
12
|
+
%w( 859908 228181 855747 214766 180918 66458 808 768475
|
13
|
+
10883 86094 754783 769067 854720 16647 ).each do |uid|
|
14
|
+
puts " - Adding user with uid:#{uid}:"
|
15
|
+
User.find_create_and_update_by_uid(uid)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
desc "Deputize user by UID"
|
20
|
+
task :deputize => :environment do
|
21
|
+
puts
|
22
|
+
if ENV['uid'].blank?
|
23
|
+
puts "User's CalNet UID required."
|
24
|
+
puts "Usage: rake #{$*} uid=INTEGER"
|
25
|
+
puts
|
26
|
+
exit
|
27
|
+
end
|
28
|
+
if !User.exists?(:uid => ENV['uid'])
|
29
|
+
puts "No user found with uid=#{ENV['uid']}."
|
30
|
+
puts
|
31
|
+
exit
|
32
|
+
end
|
33
|
+
user = User.find(:first, :conditions => { :uid => ENV['uid'] })
|
34
|
+
puts "Found user #{user.displayname}. Deputizing..."
|
35
|
+
user.deputize
|
36
|
+
puts "User deputized: #{user.is_administrator?}"
|
37
|
+
puts
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
namespace :db do
|
2
|
+
|
3
|
+
desc "Create yml fixtures for given model in database\n" <<
|
4
|
+
"rake db:extract_fixtures_from pages"
|
5
|
+
task :extract_fixtures_from => :environment do
|
6
|
+
me = $*.shift
|
7
|
+
while( table_name = $*.shift )
|
8
|
+
File.open("#{RAILS_ROOT}/db/#{table_name}.yml", 'w') do |file|
|
9
|
+
data = table_name.singularize.capitalize.constantize.find(
|
10
|
+
:all).collect(&:attributes)
|
11
|
+
file.write data.inject({}) { |hash, record|
|
12
|
+
record.delete('created_at')
|
13
|
+
record.delete('updated_at')
|
14
|
+
hash["#{table_name}_#{record['id']}"] = record
|
15
|
+
hash
|
16
|
+
}.to_yaml
|
17
|
+
end
|
18
|
+
end
|
19
|
+
exit
|
20
|
+
end
|
21
|
+
|
22
|
+
desc "Dump MYSQL table descriptions."
|
23
|
+
task :describe => :environment do
|
24
|
+
puts
|
25
|
+
puts "FYI: This task ONLY works on MYSQL databases."
|
26
|
+
puts
|
27
|
+
config = ActiveRecord::Base.connection.instance_variable_get(:@config)
|
28
|
+
#=> {:adapter=>"mysql", :host=>"localhost", :password=>nil, :username=>"root", :database=>"my_development", :encoding=>"utf8"}
|
29
|
+
|
30
|
+
tables = ActiveRecord::Base.connection.execute('show tables;')
|
31
|
+
while( table = tables.fetch_row ) do
|
32
|
+
puts "Table: #{table}"
|
33
|
+
|
34
|
+
# may have to include host and port
|
35
|
+
system("mysql --table=true " <<
|
36
|
+
"--user=#{config[:username]} " <<
|
37
|
+
"--password='#{config[:password]}' " <<
|
38
|
+
"--execute='describe #{table}' " <<
|
39
|
+
config[:database]);
|
40
|
+
|
41
|
+
#
|
42
|
+
# mysql formats the table well so doing it by hand is something that
|
43
|
+
# will have to wait until I feel like wasting my time
|
44
|
+
#
|
45
|
+
# columns = ActiveRecord::Base.connection.execute("describe #{table};")
|
46
|
+
# while( column = columns.fetch_hash ) do
|
47
|
+
# puts column.keys Extra Default Null Type Field Key
|
48
|
+
# end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
#
|
2
|
+
# This file has been copied from rails
|
3
|
+
# .../rails-2.3.5/lib/tasks/documentation.rake
|
4
|
+
# so that parts of it could be modified.
|
5
|
+
|
6
|
+
namespace :doc do |doc|
|
7
|
+
|
8
|
+
# Rake::RDocTask.new("app") { |rdoc|
|
9
|
+
#
|
10
|
+
# We cannot overwrite or override an RDoc rake task.
|
11
|
+
# Redefining it here actually creates another
|
12
|
+
# of the same name and both are run when
|
13
|
+
# `rake doc:app` is called. The Rakefile
|
14
|
+
# is modified to handle the modifications.
|
15
|
+
#
|
16
|
+
# Actually, that's not entirely true. This would
|
17
|
+
# add another task, but you can remove and override
|
18
|
+
# a task. The rdoc_rails plugin was overriding my
|
19
|
+
# override, which caused all the frustration!!!
|
20
|
+
#
|
21
|
+
# }
|
22
|
+
|
23
|
+
plugins = FileList['vendor/plugins/**'].collect { |plugin|
|
24
|
+
File.basename(plugin) }
|
25
|
+
|
26
|
+
namespace :plugins do
|
27
|
+
# Define doc tasks for each plugin
|
28
|
+
plugins.each do |plugin|
|
29
|
+
|
30
|
+
# clear rails' Rake::Task of the same name
|
31
|
+
Rake::Task[plugin].clear_actions
|
32
|
+
Rake::Task[plugin].clear_prerequisites
|
33
|
+
|
34
|
+
Rake::RDocTask.new(plugin) { |rdoc|
|
35
|
+
plugin_base = "vendor/plugins/#{plugin}"
|
36
|
+
ENV['format'] ||= 'railsfish'
|
37
|
+
rdoc.rdoc_dir = "doc/plugins/#{plugin}"
|
38
|
+
rdoc.template = ENV['template'] if ENV['template']
|
39
|
+
rdoc.title = "#{plugin.titlecase} Plugin Documentation"
|
40
|
+
rdoc.options << '--line-numbers' << '--inline-source'
|
41
|
+
rdoc.options << '--charset' << 'utf-8'
|
42
|
+
rdoc.options << '--format' << ENV['format']
|
43
|
+
rdoc.rdoc_files.include("#{plugin_base}/lib/**/*.rb")
|
44
|
+
rdoc.rdoc_files.include("#{plugin_base}/app/**/*.rb")
|
45
|
+
|
46
|
+
%w( README README.rdoc ).each do |readme|
|
47
|
+
if File.exist?("#{plugin_base}/#{readme}")
|
48
|
+
rdoc.main = "#{plugin_base}/#{readme}"
|
49
|
+
break
|
50
|
+
end
|
51
|
+
end
|
52
|
+
%w( TODO.org MIT-LICENSE LICENSE CHANGELOG README README.rdoc ).each do |possible_file|
|
53
|
+
if File.exist?("#{plugin_base}/#{possible_file}")
|
54
|
+
rdoc.rdoc_files.include("#{plugin_base}/#{possible_file}")
|
55
|
+
end
|
56
|
+
end
|
57
|
+
}
|
58
|
+
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
task :parse_readme => :environment do
|
63
|
+
require 'rdoc/markup/to_html'
|
64
|
+
h = RDoc::Markup::ToHtml.new
|
65
|
+
puts h.convert( File.read('README.rdoc') )
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
data/lib/tasks/rcov.rake
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
#
|
2
|
+
# This is from Advanced Rails Recipes, page 277
|
3
|
+
#
|
4
|
+
namespace :test do
|
5
|
+
|
6
|
+
desc 'Tracks test coverage with rcov'
|
7
|
+
task :coverage do
|
8
|
+
rm_f "coverage"
|
9
|
+
rm_f "coverage.data"
|
10
|
+
|
11
|
+
unless PLATFORM['i386-mswin32']
|
12
|
+
rcov = "rcov --sort coverage --rails --aggregate coverage.data " <<
|
13
|
+
"--text-summary -Ilib -T " <<
|
14
|
+
"-x gems/*,db/migrate/*,jrails/*/*" <<
|
15
|
+
',\(eval\),\(recognize_optimized\),\(erb\)' << # needed in jruby
|
16
|
+
",yaml,yaml/*,lib/tmail/parser.y,jruby.jar!/*" << # needed in jruby
|
17
|
+
",html_test/*/*" <<
|
18
|
+
",html_test_extension/*/*"
|
19
|
+
else
|
20
|
+
rcov = "rcov.cmd --sort coverage --rails --aggregate " <<
|
21
|
+
"coverage.data --text-summary -Ilib -T"
|
22
|
+
end
|
23
|
+
|
24
|
+
dirs = Dir.glob("test/**/*_test.rb").collect{|f|File.dirname(f)}.uniq
|
25
|
+
lastdir = dirs.pop
|
26
|
+
dirs.each do |dir|
|
27
|
+
system("#{rcov} --no-html #{dir}/*_test.rb")
|
28
|
+
end
|
29
|
+
system("#{rcov} --html #{lastdir}/*_test.rb") unless lastdir.nil?
|
30
|
+
|
31
|
+
unless PLATFORM['i386-mswin32']
|
32
|
+
# jruby-1.5.0.RC1 > PLATFORM
|
33
|
+
# => "java"
|
34
|
+
# system("open coverage/index.html") if PLATFORM['darwin']
|
35
|
+
system("open coverage/index.html")
|
36
|
+
else
|
37
|
+
system("\"C:/Program Files/Mozilla Firefox/firefox.exe\" " +
|
38
|
+
"coverage/index.html")
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
metadata
ADDED
@@ -0,0 +1,276 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: jakewendt-authorized
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 19
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
- 4
|
10
|
+
version: 0.1.4
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- George 'Jake' Wendt
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2010-10-25 00:00:00 -07:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: i18n
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - "="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 29
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
- 3
|
33
|
+
- 7
|
34
|
+
version: 0.3.7
|
35
|
+
type: :runtime
|
36
|
+
version_requirements: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: rails
|
39
|
+
prerelease: false
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
hash: 7
|
46
|
+
segments:
|
47
|
+
- 2
|
48
|
+
version: "2"
|
49
|
+
type: :runtime
|
50
|
+
version_requirements: *id002
|
51
|
+
- !ruby/object:Gem::Dependency
|
52
|
+
name: activerecord
|
53
|
+
prerelease: false
|
54
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
55
|
+
none: false
|
56
|
+
requirements:
|
57
|
+
- - ~>
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
hash: 7
|
60
|
+
segments:
|
61
|
+
- 2
|
62
|
+
version: "2"
|
63
|
+
type: :runtime
|
64
|
+
version_requirements: *id003
|
65
|
+
- !ruby/object:Gem::Dependency
|
66
|
+
name: activeresource
|
67
|
+
prerelease: false
|
68
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
69
|
+
none: false
|
70
|
+
requirements:
|
71
|
+
- - ~>
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
hash: 7
|
74
|
+
segments:
|
75
|
+
- 2
|
76
|
+
version: "2"
|
77
|
+
type: :runtime
|
78
|
+
version_requirements: *id004
|
79
|
+
- !ruby/object:Gem::Dependency
|
80
|
+
name: activesupport
|
81
|
+
prerelease: false
|
82
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
84
|
+
requirements:
|
85
|
+
- - ~>
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
hash: 7
|
88
|
+
segments:
|
89
|
+
- 2
|
90
|
+
version: "2"
|
91
|
+
type: :runtime
|
92
|
+
version_requirements: *id005
|
93
|
+
- !ruby/object:Gem::Dependency
|
94
|
+
name: actionmailer
|
95
|
+
prerelease: false
|
96
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ~>
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
hash: 7
|
102
|
+
segments:
|
103
|
+
- 2
|
104
|
+
version: "2"
|
105
|
+
type: :runtime
|
106
|
+
version_requirements: *id006
|
107
|
+
- !ruby/object:Gem::Dependency
|
108
|
+
name: actionpack
|
109
|
+
prerelease: false
|
110
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
111
|
+
none: false
|
112
|
+
requirements:
|
113
|
+
- - ~>
|
114
|
+
- !ruby/object:Gem::Version
|
115
|
+
hash: 7
|
116
|
+
segments:
|
117
|
+
- 2
|
118
|
+
version: "2"
|
119
|
+
type: :runtime
|
120
|
+
version_requirements: *id007
|
121
|
+
- !ruby/object:Gem::Dependency
|
122
|
+
name: jakewendt-rails_helpers
|
123
|
+
prerelease: false
|
124
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
125
|
+
none: false
|
126
|
+
requirements:
|
127
|
+
- - ">="
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
hash: 3
|
130
|
+
segments:
|
131
|
+
- 0
|
132
|
+
version: "0"
|
133
|
+
type: :runtime
|
134
|
+
version_requirements: *id008
|
135
|
+
- !ruby/object:Gem::Dependency
|
136
|
+
name: jakewendt-ruby_extension
|
137
|
+
prerelease: false
|
138
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
139
|
+
none: false
|
140
|
+
requirements:
|
141
|
+
- - ">="
|
142
|
+
- !ruby/object:Gem::Version
|
143
|
+
hash: 3
|
144
|
+
segments:
|
145
|
+
- 0
|
146
|
+
version: "0"
|
147
|
+
type: :runtime
|
148
|
+
version_requirements: *id009
|
149
|
+
- !ruby/object:Gem::Dependency
|
150
|
+
name: ryanb-acts-as-list
|
151
|
+
prerelease: false
|
152
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - ">="
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
hash: 3
|
158
|
+
segments:
|
159
|
+
- 0
|
160
|
+
version: "0"
|
161
|
+
type: :runtime
|
162
|
+
version_requirements: *id010
|
163
|
+
- !ruby/object:Gem::Dependency
|
164
|
+
name: thoughtbot-factory_girl
|
165
|
+
prerelease: false
|
166
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
167
|
+
none: false
|
168
|
+
requirements:
|
169
|
+
- - ">="
|
170
|
+
- !ruby/object:Gem::Version
|
171
|
+
hash: 3
|
172
|
+
segments:
|
173
|
+
- 0
|
174
|
+
version: "0"
|
175
|
+
type: :runtime
|
176
|
+
version_requirements: *id011
|
177
|
+
- !ruby/object:Gem::Dependency
|
178
|
+
name: jakewendt-assert_this_and_that
|
179
|
+
prerelease: false
|
180
|
+
requirement: &id012 !ruby/object:Gem::Requirement
|
181
|
+
none: false
|
182
|
+
requirements:
|
183
|
+
- - ">="
|
184
|
+
- !ruby/object:Gem::Version
|
185
|
+
hash: 3
|
186
|
+
segments:
|
187
|
+
- 0
|
188
|
+
version: "0"
|
189
|
+
type: :runtime
|
190
|
+
version_requirements: *id012
|
191
|
+
- !ruby/object:Gem::Dependency
|
192
|
+
name: jakewendt-calnet_authenticated
|
193
|
+
prerelease: false
|
194
|
+
requirement: &id013 !ruby/object:Gem::Requirement
|
195
|
+
none: false
|
196
|
+
requirements:
|
197
|
+
- - ">="
|
198
|
+
- !ruby/object:Gem::Version
|
199
|
+
hash: 3
|
200
|
+
segments:
|
201
|
+
- 0
|
202
|
+
version: "0"
|
203
|
+
type: :runtime
|
204
|
+
version_requirements: *id013
|
205
|
+
description: longer description of your gem
|
206
|
+
email: github@jake.otherinbox.com
|
207
|
+
executables: []
|
208
|
+
|
209
|
+
extensions: []
|
210
|
+
|
211
|
+
extra_rdoc_files:
|
212
|
+
- README.rdoc
|
213
|
+
files:
|
214
|
+
- app/controllers/roles_controller.rb
|
215
|
+
- app/models/role.rb
|
216
|
+
- config/routes.rb
|
217
|
+
- generators/authorized/USAGE
|
218
|
+
- generators/authorized/authorized_generator.rb
|
219
|
+
- generators/authorized/templates/functional/roles_controller_test.rb
|
220
|
+
- generators/authorized/templates/migrations/create_roles.rb
|
221
|
+
- generators/authorized/templates/migrations/create_roles_users.rb
|
222
|
+
- generators/authorized/templates/stylesheets/authorized.css
|
223
|
+
- generators/authorized/templates/unit/role_test.rb
|
224
|
+
- lib/authorized.rb
|
225
|
+
- lib/authorized/authorization.rb
|
226
|
+
- lib/authorized/controller.rb
|
227
|
+
- lib/authorized/core_extension.rb
|
228
|
+
- lib/authorized/factories.rb
|
229
|
+
- lib/authorized/factory_test_helper.rb
|
230
|
+
- lib/authorized/helper.rb
|
231
|
+
- lib/authorized/pending.rb
|
232
|
+
- lib/authorized/permissive_controller.rb
|
233
|
+
- lib/authorized/resourceful_controller.rb
|
234
|
+
- lib/authorized/tasks.rb
|
235
|
+
- lib/authorized/user_model.rb
|
236
|
+
- lib/tasks/application.rake
|
237
|
+
- lib/tasks/database.rake
|
238
|
+
- lib/tasks/documentation.rake
|
239
|
+
- lib/tasks/rcov.rake
|
240
|
+
- README.rdoc
|
241
|
+
has_rdoc: true
|
242
|
+
homepage: http://github.com/jakewendt/authorized
|
243
|
+
licenses: []
|
244
|
+
|
245
|
+
post_install_message:
|
246
|
+
rdoc_options:
|
247
|
+
- --charset=UTF-8
|
248
|
+
require_paths:
|
249
|
+
- lib
|
250
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
251
|
+
none: false
|
252
|
+
requirements:
|
253
|
+
- - ">="
|
254
|
+
- !ruby/object:Gem::Version
|
255
|
+
hash: 3
|
256
|
+
segments:
|
257
|
+
- 0
|
258
|
+
version: "0"
|
259
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
260
|
+
none: false
|
261
|
+
requirements:
|
262
|
+
- - ">="
|
263
|
+
- !ruby/object:Gem::Version
|
264
|
+
hash: 3
|
265
|
+
segments:
|
266
|
+
- 0
|
267
|
+
version: "0"
|
268
|
+
requirements: []
|
269
|
+
|
270
|
+
rubyforge_project:
|
271
|
+
rubygems_version: 1.3.7
|
272
|
+
signing_key:
|
273
|
+
specification_version: 3
|
274
|
+
summary: one-line summary of your gem
|
275
|
+
test_files: []
|
276
|
+
|