active_leonardo 0.0.3 → 0.0.4
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/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
|
-
|