active_leonardo 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +4 -1
- data/README.rdoc +1 -1
- data/active_template.rb +15 -3
- data/lib/generators/active_leonardo.rb +4 -0
- data/lib/generators/leolay/leolay_generator.rb +10 -6
- data/lib/generators/leolay/templates/app/admin/users.rb +18 -7
- metadata +61 -76
data/CHANGELOG
CHANGED
@@ -1,4 +1,7 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.4 (August 13th, 2012) Marco Mastrodonato
|
2
|
+
* Now you can use any name instead of *User*
|
3
|
+
|
4
|
+
0.0.3 (August 10th, 2012) Marco Mastrodonato
|
2
5
|
* Improved cancan integration
|
3
6
|
* Localization yaml file cleaned from some previous leonardo stuff
|
4
7
|
|
data/README.rdoc
CHANGED
data/active_template.rb
CHANGED
@@ -48,8 +48,20 @@ authentication = yes?("Authentication ?")
|
|
48
48
|
model_name = authorization = nil
|
49
49
|
if authentication
|
50
50
|
default_model_name = "User"
|
51
|
-
model_name = ask(" Insert model name: [#{default_model_name}]
|
52
|
-
|
51
|
+
model_name = ask(" Insert model name: [#{default_model_name}]")
|
52
|
+
if model_name.empty? || model_name == 'y'
|
53
|
+
model_name = default_model_name
|
54
|
+
else
|
55
|
+
model_name = model_name.classify
|
56
|
+
stdout = <<-REMEM.gsub(/^ /, '')
|
57
|
+
*************************************************************************
|
58
|
+
Remember to add your auth class when you use active leonardo's generator.
|
59
|
+
For example:
|
60
|
+
rails g leosca Product name price:decimal --auth_class=#{model_name}
|
61
|
+
*************************************************************************
|
62
|
+
REMEM
|
63
|
+
p stdout
|
64
|
+
end
|
53
65
|
|
54
66
|
authorization = yes?("Authorization ?")
|
55
67
|
gem 'cancan' if authorization
|
@@ -60,7 +72,7 @@ home = yes?("Ok. Would you create home controller as root ?") unless dashboard_r
|
|
60
72
|
|
61
73
|
if yes?("Bundle install ?")
|
62
74
|
dir = ask(" Insert folder name to install locally: [blank=default gems path]")
|
63
|
-
run "bundle install #{"--path=#{dir}" unless dir.empty?}"
|
75
|
+
run "bundle install #{"--path=#{dir}" unless dir.empty? || dir=='y'}"
|
64
76
|
end
|
65
77
|
|
66
78
|
generate "active_admin:install #{authentication ? model_name : "--skip-users"}"
|
@@ -20,6 +20,10 @@ module ActiveLeonardo
|
|
20
20
|
def activeadmin?
|
21
21
|
File.exists? activeadmin_file
|
22
22
|
end
|
23
|
+
def auth_class
|
24
|
+
return unless options[:auth_class]
|
25
|
+
options[:auth_class].classify
|
26
|
+
end
|
23
27
|
#def formtastic?
|
24
28
|
# return false unless options.formtastic?
|
25
29
|
# File.exists? "config/initializers/formtastic.rb"
|
@@ -114,6 +114,9 @@ class LeolayGenerator < Rails::Generators::Base
|
|
114
114
|
rescue_from CanCan::AccessDenied do |exception|
|
115
115
|
redirect_to root_url, :alert => exception.message
|
116
116
|
end
|
117
|
+
def current_ability
|
118
|
+
@current_ability ||= Ability.new(current_#{options[:auth_class].downcase})
|
119
|
+
end
|
117
120
|
FILE
|
118
121
|
end if options.authorization?
|
119
122
|
|
@@ -153,11 +156,11 @@ class LeolayGenerator < Rails::Generators::Base
|
|
153
156
|
end
|
154
157
|
|
155
158
|
def setup_authentication
|
156
|
-
file = "app/models/#{options.
|
159
|
+
file = "app/models/#{options[:auth_class].downcase}.rb"
|
157
160
|
#puts "File #{file} #{File.exists?(file) ? "" : "does not"} exists!"
|
158
161
|
return unless options.authentication? and File.exists?(file)
|
159
162
|
|
160
|
-
inject_into_class file,
|
163
|
+
inject_into_class file, auth_class do
|
161
164
|
<<-FILE.gsub(/^ /, '')
|
162
165
|
ROLES = %w[admin manager user guest]
|
163
166
|
scope :with_role, lambda { |role| {:conditions => "roles_mask & \#{2**ROLES.index(role.to_s)} > 0 "} }
|
@@ -186,9 +189,10 @@ class LeolayGenerator < Rails::Generators::Base
|
|
186
189
|
def setup_authorization
|
187
190
|
file = "app/models/ability.rb"
|
188
191
|
return unless File.exists?(file)
|
192
|
+
gsub_file file, /initialize(\s|\()user(.|)/, "initialize(#{options[:auth_class].downcase})"
|
189
193
|
inject_into_file file, :before => " end\nend" do
|
190
194
|
<<-FILE.gsub(/^ /, '')
|
191
|
-
#{options[:auth_class].downcase} ||= #{
|
195
|
+
#{options[:auth_class].downcase} ||= #{auth_class}.new
|
192
196
|
can :manage, :all if #{options[:auth_class].downcase}.role? :admin
|
193
197
|
|
194
198
|
FILE
|
@@ -200,13 +204,13 @@ class LeolayGenerator < Rails::Generators::Base
|
|
200
204
|
file = "db/seeds.rb"
|
201
205
|
append_file file do
|
202
206
|
<<-FILE.gsub(/^ /, '')
|
203
|
-
user=#{
|
207
|
+
user=#{auth_class}.new :email => 'admin@#{app_name}.com', :password => 'abcd1234', :password_confirmation => 'abcd1234'
|
204
208
|
#{"user.roles=['admin']" if options.authorization?}
|
205
209
|
user.save
|
206
|
-
user=#{
|
210
|
+
user=#{auth_class}.new :email => 'manager@#{app_name}.com', :password => 'abcd1234', :password_confirmation => 'abcd1234'
|
207
211
|
#{"user.roles=['manager']" if options.authorization?}
|
208
212
|
user.save
|
209
|
-
user=#{
|
213
|
+
user=#{auth_class}.new :email => 'user@#{app_name}.com', :password => 'abcd1234', :password_confirmation => 'abcd1234'
|
210
214
|
#{"user.roles=['user']" if options.authorization?}
|
211
215
|
user.save
|
212
216
|
FILE
|
@@ -1,11 +1,14 @@
|
|
1
1
|
ActiveAdmin.register <%= options[:auth_class] %> do
|
2
|
+
<%- if options.authorization? -%>
|
2
3
|
menu :if => proc{ can?(:manage, <%= options[:auth_class] %>) }
|
3
|
-
|
4
|
+
<%- end -%>
|
4
5
|
config.sort_order = 'email_asc'
|
5
6
|
|
6
7
|
controller do
|
8
|
+
<%- if options.authorization? -%>
|
7
9
|
load_resource :except => :index
|
8
10
|
authorize_resource
|
11
|
+
<%- end -%>
|
9
12
|
def update
|
10
13
|
unless params[:<%= options[:auth_class].downcase %>]['password'] && params[:<%= options[:auth_class].downcase %>]['password'].size > 0
|
11
14
|
params[:<%= options[:auth_class].downcase %>].delete 'password'
|
@@ -21,9 +24,11 @@ ActiveAdmin.register <%= options[:auth_class] %> do
|
|
21
24
|
id_column
|
22
25
|
column :email
|
23
26
|
#column :group, :sortable => :group_id
|
24
|
-
|
25
|
-
|
27
|
+
<%- if options.authorization? -%>
|
28
|
+
column :roles do |<%= options[:auth_class].downcase %>|
|
29
|
+
<%= options[:auth_class].downcase %>.roles.join ", "
|
26
30
|
end
|
31
|
+
<%- end -%>
|
27
32
|
column :current_sign_in_at
|
28
33
|
column :current_sign_in_ip
|
29
34
|
column :created_at
|
@@ -31,16 +36,18 @@ ActiveAdmin.register <%= options[:auth_class] %> do
|
|
31
36
|
end
|
32
37
|
|
33
38
|
form do |f|
|
39
|
+
<%- if options.authorization? -%>
|
34
40
|
input_roles = "<li>" <<
|
35
41
|
f.label(:roles) <<
|
36
42
|
<%= options[:auth_class] %>::ROLES.map{|role| check_box_tag("<%= options[:auth_class].downcase %>[roles][]", role, f.object.roles.include?(role)) << ' ' << role.humanize.html_safe }.join(" ") <<
|
37
43
|
hidden_field_tag("<%= options[:auth_class].downcase %>[roles][]") <<
|
38
44
|
"</li>"
|
45
|
+
<%- end -%>
|
39
46
|
f.inputs "Account" do
|
40
47
|
f.input :email
|
41
48
|
f.input :password
|
42
|
-
f.input(:password_confirmation) <<
|
43
|
-
|
49
|
+
f.input(:password_confirmation) <%= "<< input_roles.html_safe" if options.authorization? %>
|
50
|
+
|
44
51
|
end
|
45
52
|
f.buttons
|
46
53
|
end
|
@@ -53,9 +60,11 @@ ActiveAdmin.register <%= options[:auth_class] %> do
|
|
53
60
|
row :last_sign_in_at
|
54
61
|
row :sign_in_count
|
55
62
|
row :current_sign_in_ip
|
56
|
-
|
57
|
-
|
63
|
+
<%- if options.authorization? -%>
|
64
|
+
row :roles do |<%= options[:auth_class].downcase %>|
|
65
|
+
<%= options[:auth_class].downcase %>.roles.join ", "
|
58
66
|
end
|
67
|
+
<%- end -%>
|
59
68
|
row :created_at
|
60
69
|
row :updated_at
|
61
70
|
end
|
@@ -65,7 +74,9 @@ ActiveAdmin.register <%= options[:auth_class] %> do
|
|
65
74
|
column :email
|
66
75
|
#column("Name") { |<%= options[:auth_class].downcase %>| <%= options[:auth_class].downcase %>.name }
|
67
76
|
#column("Group") { |<%= options[:auth_class].downcase %>| <%= options[:auth_class].downcase %>.group.try(:name) }
|
77
|
+
<%- if options.authorization? -%>
|
68
78
|
column(I18n.t('attributes.<%= options[:auth_class].downcase %>.roles')) { |<%= options[:auth_class].downcase %>| <%= options[:auth_class].downcase %>.roles.join ", " }
|
79
|
+
<%- end -%>
|
69
80
|
column(I18n.t('attributes.created_at')) { |<%= options[:auth_class].downcase %>| <%= options[:auth_class].downcase %>.created_at.strftime("%d/%m/%Y") }
|
70
81
|
column(I18n.t('attributes.<%= options[:auth_class].downcase %>.last_sign_in_at')) { |<%= options[:auth_class].downcase %>| <%= options[:auth_class].downcase %>.last_sign_in_at.strftime("%d/%m/%Y") if <%= options[:auth_class].downcase %>.last_sign_in_at }
|
71
82
|
end
|
metadata
CHANGED
@@ -1,80 +1,73 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_leonardo
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
- 3
|
10
|
-
version: 0.0.3
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Marco Mastrodonato
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-08-13 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: rails
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
hash: 3
|
29
|
-
segments:
|
30
|
-
- 3
|
31
|
-
- 1
|
32
|
-
- 0
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
33
21
|
version: 3.1.0
|
34
22
|
type: :runtime
|
35
|
-
version_requirements: *id001
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: activeadmin
|
38
23
|
prerelease: false
|
39
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 3.1.0
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: activeadmin
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
40
33
|
none: false
|
41
|
-
requirements:
|
42
|
-
- -
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
hash: 15
|
45
|
-
segments:
|
46
|
-
- 0
|
47
|
-
- 4
|
48
|
-
- 0
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
49
37
|
version: 0.4.0
|
50
38
|
type: :runtime
|
51
|
-
version_requirements: *id002
|
52
|
-
- !ruby/object:Gem::Dependency
|
53
|
-
name: cancan
|
54
39
|
prerelease: false
|
55
|
-
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
56
41
|
none: false
|
57
|
-
requirements:
|
58
|
-
- -
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 0.4.0
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: cancan
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
65
53
|
version: 1.5.0
|
66
54
|
type: :runtime
|
67
|
-
|
68
|
-
|
69
|
-
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.5.0
|
62
|
+
description: This generator help you to create new Rails applications to combine with
|
63
|
+
active admin gem. It generates application structure to easily get the internationalization
|
64
|
+
and authorization.
|
65
|
+
email:
|
70
66
|
- m.mastrodonato@gmail.com
|
71
67
|
executables: []
|
72
|
-
|
73
68
|
extensions: []
|
74
|
-
|
75
69
|
extra_rdoc_files: []
|
76
|
-
|
77
|
-
files:
|
70
|
+
files:
|
78
71
|
- lib/generators/active_leonardo.rb
|
79
72
|
- lib/generators/erb/leosca/leosca_generator.rb
|
80
73
|
- lib/generators/leolay/install_generator.rb
|
@@ -115,36 +108,28 @@ files:
|
|
115
108
|
- active_template.rb
|
116
109
|
homepage: https://github.com/marcomd/Active_Leonardo
|
117
110
|
licenses: []
|
118
|
-
|
119
111
|
post_install_message:
|
120
112
|
rdoc_options: []
|
121
|
-
|
122
|
-
require_paths:
|
113
|
+
require_paths:
|
123
114
|
- lib
|
124
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
115
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
125
116
|
none: false
|
126
|
-
requirements:
|
127
|
-
- -
|
128
|
-
- !ruby/object:Gem::Version
|
129
|
-
|
130
|
-
|
131
|
-
- 0
|
132
|
-
version: "0"
|
133
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
117
|
+
requirements:
|
118
|
+
- - ! '>='
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: '0'
|
121
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
134
122
|
none: false
|
135
|
-
requirements:
|
136
|
-
- -
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
|
139
|
-
|
140
|
-
- 0
|
141
|
-
version: "0"
|
142
|
-
requirements:
|
123
|
+
requirements:
|
124
|
+
- - ! '>='
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: '0'
|
127
|
+
requirements:
|
143
128
|
- Start a new app with the template.rb inside root folder
|
144
129
|
rubyforge_project:
|
145
130
|
rubygems_version: 1.8.24
|
146
131
|
signing_key:
|
147
132
|
specification_version: 3
|
148
|
-
summary: This gem provides a new customized scaffold generator to combine with active
|
133
|
+
summary: This gem provides a new customized scaffold generator to combine with active
|
134
|
+
admin
|
149
135
|
test_files: []
|
150
|
-
|