fullstack-admin 0.2.2 → 0.2.3
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +0 -1
- data/Gemfile.lock +0 -14
- data/VERSION +1 -1
- data/app/controllers/admin/base_controller.rb +3 -9
- data/app/controllers/admin/sessions_controller.rb +2 -19
- data/app/models/administrator.rb +28 -0
- data/app/views/admin/_nav.html.erb +1 -1
- data/app/views/admin/sessions/new.html.erb +7 -3
- data/config/routes.rb +4 -5
- data/fullstack-admin.gemspec +3 -6
- data/lib/fullstack/admin.rb +0 -1
- data/lib/generators/fullstack/admin/install_generator.rb +6 -8
- metadata +4 -20
- data/app/models/superuser.rb +0 -6
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -85,8 +85,6 @@ GEM
|
|
85
85
|
facebox-rails (0.1.2)
|
86
86
|
railties (~> 3.0)
|
87
87
|
thor (~> 0.14)
|
88
|
-
faraday (0.8.4)
|
89
|
-
multipart-post (~> 1.1)
|
90
88
|
flash_cookie_session (1.1.3)
|
91
89
|
rails (~> 3.0)
|
92
90
|
formtastic (2.2.1)
|
@@ -131,7 +129,6 @@ GEM
|
|
131
129
|
httparty (0.9.0)
|
132
130
|
multi_json (~> 1.0)
|
133
131
|
multi_xml
|
134
|
-
httpauth (0.2.0)
|
135
132
|
i18n (0.6.0)
|
136
133
|
jeweler (1.8.4)
|
137
134
|
bundler (~> 1.0)
|
@@ -166,14 +163,8 @@ GEM
|
|
166
163
|
rails
|
167
164
|
multi_json (1.3.6)
|
168
165
|
multi_xml (0.5.1)
|
169
|
-
multipart-post (1.1.5)
|
170
166
|
net-ssh (2.5.2)
|
171
167
|
nokogiri (1.5.5)
|
172
|
-
oauth (0.4.7)
|
173
|
-
oauth2 (0.6.1)
|
174
|
-
faraday (~> 0.7)
|
175
|
-
httpauth (~> 0.1)
|
176
|
-
multi_json (~> 1.3)
|
177
168
|
orm_adapter (0.4.0)
|
178
169
|
paperclip (3.2.0)
|
179
170
|
activemodel (>= 3.0.0)
|
@@ -229,10 +220,6 @@ GEM
|
|
229
220
|
remotipart (1.0.2)
|
230
221
|
resource-presentation-helpers (0.1.1)
|
231
222
|
rails
|
232
|
-
sorcery (0.7.13)
|
233
|
-
bcrypt-ruby (~> 3.0.0)
|
234
|
-
oauth (~> 0.4.4)
|
235
|
-
oauth2 (~> 0.6.0)
|
236
223
|
sprockets (2.1.3)
|
237
224
|
hike (~> 1.2)
|
238
225
|
rack (~> 1.0)
|
@@ -267,4 +254,3 @@ DEPENDENCIES
|
|
267
254
|
meta_search
|
268
255
|
plupload-rails
|
269
256
|
rails (~> 3.2)
|
270
|
-
sorcery
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.3
|
@@ -1,15 +1,9 @@
|
|
1
1
|
class Admin::BaseController < ApplicationController
|
2
|
-
before_filter :
|
2
|
+
before_filter :authenticate_administrator!
|
3
3
|
before_filter :fetch_current_resource
|
4
4
|
|
5
5
|
layout 'admin'
|
6
|
-
|
7
|
-
protected
|
8
|
-
|
9
|
-
def not_authenticated
|
10
|
-
redirect_to new_admin_session_url, :alert => "First login to access this page."
|
11
|
-
end
|
12
|
-
|
6
|
+
|
13
7
|
class << self
|
14
8
|
def responder
|
15
9
|
::Admin::Responder
|
@@ -28,7 +22,7 @@ class Admin::BaseController < ApplicationController
|
|
28
22
|
|
29
23
|
|
30
24
|
def subject
|
31
|
-
@subject ||= ::Admin::SubjectModelAdapter.new(
|
25
|
+
@subject ||= ::Admin::SubjectModelAdapter.new(current_administrator)
|
32
26
|
end
|
33
27
|
|
34
28
|
def current_resource_class
|
@@ -1,27 +1,10 @@
|
|
1
|
-
class Admin::SessionsController <
|
1
|
+
class Admin::SessionsController < Devise::SessionsController
|
2
2
|
layout 'login'
|
3
3
|
|
4
4
|
def new
|
5
|
-
|
5
|
+
super
|
6
6
|
end
|
7
7
|
|
8
|
-
def create
|
9
|
-
respond_to do |format|
|
10
|
-
if @user = login(params[:username],params[:password])
|
11
|
-
format.html { redirect_back_or_to("/", :notice => I18n.t("signed_in", :scope => "fullstack.admin", :default => 'Signed in successfully.')) }
|
12
|
-
format.xml { render :xml => @user, :status => :created, :location => @user }
|
13
|
-
else
|
14
|
-
format.html { flash.now[:alert] = I18n.t("login_failed", :scope => "fullstack.admin", :default => 'Login failed.'); render :action => "new" }
|
15
|
-
format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
def destroy
|
21
|
-
logout
|
22
|
-
redirect_to("/", :notice => I18n.t("signed_out", :scope => "fullstack.admin", :default => 'Signed out successfully.'))
|
23
|
-
end
|
24
|
-
|
25
8
|
end
|
26
9
|
|
27
10
|
|
@@ -0,0 +1,28 @@
|
|
1
|
+
class Administrator < ActiveRecord::Base
|
2
|
+
|
3
|
+
## Database authenticatable
|
4
|
+
field :username, :null => false, :default => "", :index => { :unique => true }
|
5
|
+
field :email
|
6
|
+
field :encrypted_password, :null => false, :default => ""
|
7
|
+
timestamps
|
8
|
+
|
9
|
+
## Trackable
|
10
|
+
field :sign_in_count, :as => :integer, :default => 0
|
11
|
+
field :current_sign_in_at, :as => :datetime
|
12
|
+
field :last_sign_in_at, :as => :datetime
|
13
|
+
field :current_sign_in_ip
|
14
|
+
field :last_sign_in_ip
|
15
|
+
|
16
|
+
## Lockable
|
17
|
+
field :failed_attempts, :integer, :default => 0
|
18
|
+
field :unlock_token
|
19
|
+
field :locked_at, :datetime
|
20
|
+
|
21
|
+
devise :database_authenticatable, :validatable, :lockable, :trackable, :authentication_keys => [:username]
|
22
|
+
attr_accessible :username, :email, :password, :password_confirmation
|
23
|
+
|
24
|
+
def has_role?(role)
|
25
|
+
%w(administrator logged_in).include?( role.try(:to_s) ) ? true : false
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
@@ -9,7 +9,7 @@
|
|
9
9
|
</li>
|
10
10
|
|
11
11
|
<%= dropdown_nav_item t('fullstack.admin.account', :default => "Account"), :icon => "user", :"icon_color" => :white do %>
|
12
|
-
<%= nav_item t('fullstack.admin.logout', :default => "Logout"),
|
12
|
+
<%= nav_item t('fullstack.admin.logout', :default => "Logout"), destroy_administrator_session_path, :method => :delete %>
|
13
13
|
<% end %>
|
14
14
|
<% end %>
|
15
15
|
|
@@ -1,4 +1,8 @@
|
|
1
|
-
|
1
|
+
<% if resource.errors.any? %>
|
2
|
+
<%= resource.errors.inspect %>
|
3
|
+
<% end %>
|
4
|
+
|
5
|
+
<%= form_for( resource, :as => resource_name, :url => session_path(resource_name), :html => {:class => "login-box"} ) do |f| %>
|
2
6
|
<div class="login-box-header">
|
3
7
|
Login
|
4
8
|
</div>
|
@@ -18,12 +22,12 @@
|
|
18
22
|
|
19
23
|
<div class="input-prepend">
|
20
24
|
<span class="add-on"><i class="icon-user"></i></span>
|
21
|
-
<%=
|
25
|
+
<%= f.text_field :username, :placeholder => I18n.t("username", :scope => "helpers.label", :default => "Username") %>
|
22
26
|
</div>
|
23
27
|
|
24
28
|
<div class="input-prepend">
|
25
29
|
<span class="add-on"><i class="icon-lock"></i></span>
|
26
|
-
<%=
|
30
|
+
<%= f.password_field :password, :placeholder => I18n.t("password", :scope => "helpers.label", :default => "Password") %>
|
27
31
|
</div>
|
28
32
|
</div>
|
29
33
|
|
data/config/routes.rb
CHANGED
@@ -1,12 +1,11 @@
|
|
1
1
|
Rails.application.routes.draw do
|
2
2
|
|
3
3
|
mount Ckeditor::Engine => '/ckeditor'
|
4
|
-
|
4
|
+
|
5
|
+
devise_for :administrators, :controllers => { :sessions => "admin/sessions" }
|
5
6
|
namespace :admin do
|
6
|
-
|
7
|
-
|
8
|
-
end
|
9
|
-
|
7
|
+
|
8
|
+
|
10
9
|
resources :positionables, :only => [:index] do
|
11
10
|
post :sort, :on => :collection
|
12
11
|
end
|
data/fullstack-admin.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "fullstack-admin"
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["mcasimir"]
|
12
|
-
s.date = "2012-11-
|
12
|
+
s.date = "2012-11-06"
|
13
13
|
s.description = "Administration interface framework for fullstack"
|
14
14
|
s.email = "maurizio.cas@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -969,6 +969,7 @@ Gem::Specification.new do |s|
|
|
969
969
|
"app/inputs/taglist_input.rb",
|
970
970
|
"app/inputs/tags_input.rb",
|
971
971
|
"app/inputs/text_input.rb",
|
972
|
+
"app/models/administrator.rb",
|
972
973
|
"app/models/authenticatable.rb",
|
973
974
|
"app/models/ckeditor/asset.rb",
|
974
975
|
"app/models/ckeditor/attachment_file.rb",
|
@@ -979,7 +980,6 @@ Gem::Specification.new do |s|
|
|
979
980
|
"app/models/registerable.rb",
|
980
981
|
"app/models/rememberable.rb",
|
981
982
|
"app/models/roleable.rb",
|
982
|
-
"app/models/superuser.rb",
|
983
983
|
"app/models/suspendable.rb",
|
984
984
|
"app/models/trackable.rb",
|
985
985
|
"app/views/admin/_nav.html.erb",
|
@@ -1092,7 +1092,6 @@ Gem::Specification.new do |s|
|
|
1092
1092
|
s.add_runtime_dependency(%q<plupload-rails>, [">= 0"])
|
1093
1093
|
s.add_runtime_dependency(%q<has-attached>, ["~> 0.2.4"])
|
1094
1094
|
s.add_runtime_dependency(%q<bootstrap-datepicker-rails>, [">= 0"])
|
1095
|
-
s.add_runtime_dependency(%q<sorcery>, [">= 0"])
|
1096
1095
|
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
1097
1096
|
else
|
1098
1097
|
s.add_dependency(%q<rails>, ["~> 3.2"])
|
@@ -1106,7 +1105,6 @@ Gem::Specification.new do |s|
|
|
1106
1105
|
s.add_dependency(%q<plupload-rails>, [">= 0"])
|
1107
1106
|
s.add_dependency(%q<has-attached>, ["~> 0.2.4"])
|
1108
1107
|
s.add_dependency(%q<bootstrap-datepicker-rails>, [">= 0"])
|
1109
|
-
s.add_dependency(%q<sorcery>, [">= 0"])
|
1110
1108
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
1111
1109
|
end
|
1112
1110
|
else
|
@@ -1121,7 +1119,6 @@ Gem::Specification.new do |s|
|
|
1121
1119
|
s.add_dependency(%q<plupload-rails>, [">= 0"])
|
1122
1120
|
s.add_dependency(%q<has-attached>, ["~> 0.2.4"])
|
1123
1121
|
s.add_dependency(%q<bootstrap-datepicker-rails>, [">= 0"])
|
1124
|
-
s.add_dependency(%q<sorcery>, [">= 0"])
|
1125
1122
|
s.add_dependency(%q<jeweler>, [">= 0"])
|
1126
1123
|
end
|
1127
1124
|
end
|
data/lib/fullstack/admin.rb
CHANGED
@@ -33,19 +33,17 @@ eos
|
|
33
33
|
|
34
34
|
|
35
35
|
def users
|
36
|
-
generate "
|
36
|
+
generate "migration:from administrator"
|
37
37
|
generate "migration:from user"
|
38
38
|
append_to_file "db/seeds.rb" do
|
39
39
|
<<-eos
|
40
40
|
|
41
41
|
if Rails.env.development?
|
42
|
-
user =
|
43
|
-
:
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
user.confirm! if user.respond_to?(:confirm)
|
48
|
-
user.has_role!(:administrator) if user.respond_to?(:has_role!)
|
42
|
+
user = Administrator.create!(
|
43
|
+
:username => "admin",
|
44
|
+
:email => "admin@example.com",
|
45
|
+
:password => "password"
|
46
|
+
)
|
49
47
|
end
|
50
48
|
|
51
49
|
eos
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fullstack-admin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-11-
|
12
|
+
date: 2012-11-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -187,22 +187,6 @@ dependencies:
|
|
187
187
|
- - ! '>='
|
188
188
|
- !ruby/object:Gem::Version
|
189
189
|
version: '0'
|
190
|
-
- !ruby/object:Gem::Dependency
|
191
|
-
name: sorcery
|
192
|
-
requirement: !ruby/object:Gem::Requirement
|
193
|
-
none: false
|
194
|
-
requirements:
|
195
|
-
- - ! '>='
|
196
|
-
- !ruby/object:Gem::Version
|
197
|
-
version: '0'
|
198
|
-
type: :runtime
|
199
|
-
prerelease: false
|
200
|
-
version_requirements: !ruby/object:Gem::Requirement
|
201
|
-
none: false
|
202
|
-
requirements:
|
203
|
-
- - ! '>='
|
204
|
-
- !ruby/object:Gem::Version
|
205
|
-
version: '0'
|
206
190
|
- !ruby/object:Gem::Dependency
|
207
191
|
name: jeweler
|
208
192
|
requirement: !ruby/object:Gem::Requirement
|
@@ -1179,6 +1163,7 @@ files:
|
|
1179
1163
|
- app/inputs/taglist_input.rb
|
1180
1164
|
- app/inputs/tags_input.rb
|
1181
1165
|
- app/inputs/text_input.rb
|
1166
|
+
- app/models/administrator.rb
|
1182
1167
|
- app/models/authenticatable.rb
|
1183
1168
|
- app/models/ckeditor/asset.rb
|
1184
1169
|
- app/models/ckeditor/attachment_file.rb
|
@@ -1189,7 +1174,6 @@ files:
|
|
1189
1174
|
- app/models/registerable.rb
|
1190
1175
|
- app/models/rememberable.rb
|
1191
1176
|
- app/models/roleable.rb
|
1192
|
-
- app/models/superuser.rb
|
1193
1177
|
- app/models/suspendable.rb
|
1194
1178
|
- app/models/trackable.rb
|
1195
1179
|
- app/views/admin/_nav.html.erb
|
@@ -1295,7 +1279,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
1295
1279
|
version: '0'
|
1296
1280
|
segments:
|
1297
1281
|
- 0
|
1298
|
-
hash:
|
1282
|
+
hash: -821323276577765542
|
1299
1283
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
1300
1284
|
none: false
|
1301
1285
|
requirements:
|