cartoonist 0.0.7 → 0.0.8
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/app/assets/stylesheets/admin.css.scss +12 -0
- data/app/controllers/accounts_controller.rb +32 -0
- data/app/controllers/settings_controller.rb +8 -1
- data/app/models/user.rb +24 -0
- data/app/views/accounts/edit.html.erb +21 -0
- data/app/views/accounts/index.html.erb +29 -0
- data/app/views/accounts/new.html.erb +21 -0
- data/app/views/accounts/show.html.erb +11 -0
- data/app/views/layouts/accounts.html.erb +8 -0
- data/app/views/layouts/admin.html.erb +1 -0
- data/app/views/settings/initial_setup.html.erb +10 -0
- data/config/locales/en.yml +35 -0
- data/lib/cartoonist/engine.rb +4 -0
- metadata +18 -12
@@ -0,0 +1,32 @@
|
|
1
|
+
class AccountsController < CartoonistController
|
2
|
+
before_filter :ensure_ssl!
|
3
|
+
before_filter :check_admin!
|
4
|
+
|
5
|
+
def index
|
6
|
+
@users = User.order(:name).all
|
7
|
+
end
|
8
|
+
|
9
|
+
def create
|
10
|
+
user = User.create_user params
|
11
|
+
redirect_to "/accounts"
|
12
|
+
end
|
13
|
+
|
14
|
+
def show
|
15
|
+
@user = User.find params[:id].to_i
|
16
|
+
end
|
17
|
+
|
18
|
+
def edit
|
19
|
+
@user = User.find params[:id].to_i
|
20
|
+
end
|
21
|
+
|
22
|
+
def update
|
23
|
+
user = User.update_user params
|
24
|
+
redirect_to "/accounts/#{user.id}"
|
25
|
+
end
|
26
|
+
|
27
|
+
def destroy
|
28
|
+
raise "Cannot destroy yourself!" if current_user.id == params[:id].to_i
|
29
|
+
User.delete_user params
|
30
|
+
redirect_to "/accounts"
|
31
|
+
end
|
32
|
+
end
|
@@ -26,12 +26,19 @@ class SettingsController < CartoonistController
|
|
26
26
|
|
27
27
|
def save_initial_setup
|
28
28
|
return redirect_to "/admin" unless initial_setup_required?
|
29
|
+
|
30
|
+
if params[:admin_password] != params[:admin_confirm_password]
|
31
|
+
flash[:error] = t "settings.initial_setup.passwords_dont_match"
|
32
|
+
return redirect_to "/settings/initial_setup"
|
33
|
+
end
|
34
|
+
|
35
|
+
Setting[:copyright_starting_year] = Date.today.strftime("%Y").to_i
|
29
36
|
Setting[:domain] = params[:domain]
|
30
37
|
Setting[:site_name] = params[:site_name]
|
31
38
|
Setting[:secret_token] = SecureRandom.hex 30
|
32
39
|
Setting[:devise_pepper] = SecureRandom.hex 64
|
33
40
|
# This MUST go AFTER we set the pepper
|
34
|
-
User.create! :email => params[:admin_email], :password => params[:admin_password], :name => params[:admin_name]
|
41
|
+
User.create! :email => params[:admin_email], :password => params[:admin_password], :password_confirmation => params[:admin_confirm_password], :name => params[:admin_name]
|
35
42
|
redirect_to "/admin"
|
36
43
|
end
|
37
44
|
end
|
data/app/models/user.rb
CHANGED
@@ -3,4 +3,28 @@ class User < ActiveRecord::Base
|
|
3
3
|
|
4
4
|
# Setup accessible (or protected) attributes for your model
|
5
5
|
attr_accessible :email, :password, :password_confirmation, :remember_me, :name
|
6
|
+
|
7
|
+
class << self
|
8
|
+
def create_user(params)
|
9
|
+
create :email => params[:email], :name => params[:name], :password => params[:password], :password_confirmation => params[:confirm_password]
|
10
|
+
end
|
11
|
+
|
12
|
+
def delete_user(params)
|
13
|
+
User.find(params[:id].to_i).destroy
|
14
|
+
end
|
15
|
+
|
16
|
+
def update_user(params)
|
17
|
+
user = find params[:id].to_i
|
18
|
+
user.email = params[:email]
|
19
|
+
user.name = params[:name]
|
20
|
+
|
21
|
+
if params[:password].present? || params[:confirm_password].present?
|
22
|
+
user.password = params[:password]
|
23
|
+
user.password_confirmation = params[:confirm_password]
|
24
|
+
end
|
25
|
+
|
26
|
+
user.save!
|
27
|
+
user
|
28
|
+
end
|
29
|
+
end
|
6
30
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<h2><%= t "accounts.edit.subtitle" %></h2>
|
2
|
+
|
3
|
+
<%= form_tag "/accounts/#{@user.id}", :method => :put do %>
|
4
|
+
<p>
|
5
|
+
<%= t "accounts.edit.email" %> <input type="text" name="email" value="<%= @user.email %>" />
|
6
|
+
</p>
|
7
|
+
|
8
|
+
<p>
|
9
|
+
<%= t "accounts.edit.name" %> <input type="text" name="name" value="<%= @user.name %>" />
|
10
|
+
</p>
|
11
|
+
|
12
|
+
<p>
|
13
|
+
<%= t "accounts.edit.password" %> <input type="password" name="password" value="" />
|
14
|
+
</p>
|
15
|
+
|
16
|
+
<p>
|
17
|
+
<%= t "accounts.edit.confirm" %> <input type="password" name="confirm_password" value="" />
|
18
|
+
</p>
|
19
|
+
|
20
|
+
<input type="submit" value="<%= t "accounts.edit.save" %>" />
|
21
|
+
<% end %>
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<a href="/accounts/new"><%= t "accounts.index.new_user" %></a>
|
2
|
+
|
3
|
+
<table>
|
4
|
+
<thead>
|
5
|
+
<tr>
|
6
|
+
<th><%= t "accounts.index.name" %></th>
|
7
|
+
<th><%= t "accounts.index.email" %></th>
|
8
|
+
<th><%= t "accounts.index.edit" %></th>
|
9
|
+
<th><%= t "accounts.index.delete" %></th>
|
10
|
+
</tr>
|
11
|
+
</thead>
|
12
|
+
|
13
|
+
<tbody>
|
14
|
+
<% @users.each do |user| %>
|
15
|
+
<tr>
|
16
|
+
<td><%= user.name %></td>
|
17
|
+
<td><%= user.email %></td>
|
18
|
+
<td><a href="/accounts/<%= user.id %>/edit"><%= t "accounts.index.edit_button" %></a></td>
|
19
|
+
<td>
|
20
|
+
<% if current_user.id != user.id %>
|
21
|
+
<%= form_tag "/accounts/#{user.id}", :method => :delete do %>
|
22
|
+
<input type="submit" value="<%= t "accounts.index.delete_button" %>" />
|
23
|
+
<% end %>
|
24
|
+
<% end %>
|
25
|
+
</td>
|
26
|
+
</tr>
|
27
|
+
<% end %>
|
28
|
+
</tbody>
|
29
|
+
</table>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<h2><%= t "accounts.new.subtitle" %></h2>
|
2
|
+
|
3
|
+
<%= form_tag "/accounts", :method => :post do %>
|
4
|
+
<p>
|
5
|
+
<%= t "accounts.new.email" %> <input type="text" name="email" value="" />
|
6
|
+
</p>
|
7
|
+
|
8
|
+
<p>
|
9
|
+
<%= t "accounts.new.name" %> <input type="text" name="name" value="" />
|
10
|
+
</p>
|
11
|
+
|
12
|
+
<p>
|
13
|
+
<%= t "accounts.new.password" %> <input type="password" name="password" value="" />
|
14
|
+
</p>
|
15
|
+
|
16
|
+
<p>
|
17
|
+
<%= t "accounts.new.confirm" %> <input type="password" name="confirm_password" value="" />
|
18
|
+
</p>
|
19
|
+
|
20
|
+
<input type="submit" value="<%= t "accounts.new.save" %>" />
|
21
|
+
<% end %>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<% content_for :subtabs do %>
|
2
|
+
<a class="subtab" href="/accounts/<%= current_user.id %>"><%= t "admin.accounts.layout.my_account" %></a>
|
3
|
+
<a class="subtab" href="/accounts"><%= t "admin.accounts.layout.users" %></a>
|
4
|
+
<% end %>
|
5
|
+
|
6
|
+
<% content_for :page_title, t("admin.accounts.layout.section") %>
|
7
|
+
<% content_for(:content) { yield } %>
|
8
|
+
<%= render :template => "layouts/admin" %>
|
@@ -14,6 +14,7 @@
|
|
14
14
|
<a class="tab" href="<%= Cartoonist::Admin::Tab[tab] %>"><%= t tab, :scope => "admin.layout.tab" %></a>
|
15
15
|
<% end %>
|
16
16
|
| <%= t "admin.layout.user_heading", :user => current_user.name %>
|
17
|
+
<a href="/accounts/<%= current_user.id %>"><%= t "admin.layout.account" %></a>
|
17
18
|
<input type="submit" value="<%= t "admin.layout.logout" %>" />
|
18
19
|
</p>
|
19
20
|
<% end %>
|
@@ -1,3 +1,9 @@
|
|
1
|
+
<% if flash[:error] %>
|
2
|
+
<div class="error">
|
3
|
+
<%= flash[:error] %>
|
4
|
+
</div>
|
5
|
+
<% end %>
|
6
|
+
|
1
7
|
<%= form_tag "/settings/save_initial_setup", :method => :post do %>
|
2
8
|
<p>
|
3
9
|
<%= t "settings.initial_setup.email" %><input type="text" name="admin_email" value="<%= t "settings.initial_setup.default_email" %>" autofocus="autofocus" />
|
@@ -11,6 +17,10 @@
|
|
11
17
|
<%= t "settings.initial_setup.password" %><input type="password" name="admin_password" />
|
12
18
|
</p>
|
13
19
|
|
20
|
+
<p>
|
21
|
+
<%= t "settings.initial_setup.confirm_password" %><input type="password" name="admin_confirm_password" />
|
22
|
+
</p>
|
23
|
+
|
14
24
|
<p>
|
15
25
|
<%= t "settings.initial_setup.domain" %><input type="text" name="domain" />
|
16
26
|
</p>
|
data/config/locales/en.yml
CHANGED
@@ -1,5 +1,37 @@
|
|
1
1
|
en:
|
2
|
+
accounts:
|
3
|
+
edit:
|
4
|
+
confirm: "Confirm:"
|
5
|
+
email: "Email:"
|
6
|
+
name: "Name:"
|
7
|
+
password: "Password:"
|
8
|
+
save: Save
|
9
|
+
subtitle: Edit Account
|
10
|
+
index:
|
11
|
+
delete: Delete
|
12
|
+
delete_button: delete
|
13
|
+
edit: Edit
|
14
|
+
edit_button: edit
|
15
|
+
email: Email
|
16
|
+
name: Name
|
17
|
+
new_user: New User
|
18
|
+
new:
|
19
|
+
confirm: "Confirm:"
|
20
|
+
email: "Email:"
|
21
|
+
name: "Name:"
|
22
|
+
password: "Password:"
|
23
|
+
save: Save
|
24
|
+
subtitle: New Account
|
25
|
+
show:
|
26
|
+
edit: edit
|
27
|
+
email: "Email:"
|
28
|
+
name: "Name:"
|
2
29
|
admin:
|
30
|
+
accounts:
|
31
|
+
layout:
|
32
|
+
my_account: My Account
|
33
|
+
section: Account
|
34
|
+
users: Users
|
3
35
|
general:
|
4
36
|
actions:
|
5
37
|
backup: Download Backup
|
@@ -11,6 +43,7 @@ en:
|
|
11
43
|
settings: Settings
|
12
44
|
static_cache: Static Cache
|
13
45
|
layout:
|
46
|
+
account: Account
|
14
47
|
tab:
|
15
48
|
general: General
|
16
49
|
logout: Logout
|
@@ -43,12 +76,14 @@ en:
|
|
43
76
|
www_tmp: www tmp
|
44
77
|
settings:
|
45
78
|
initial_setup:
|
79
|
+
confirm_password: "Confirmation: "
|
46
80
|
default_email: you@youremail.com
|
47
81
|
default_name: Anonymous
|
48
82
|
domain: "Domain: "
|
49
83
|
email: "Email: "
|
50
84
|
name: "Name: "
|
51
85
|
password: "Password: "
|
86
|
+
passwords_dont_match: Your passwords must match.
|
52
87
|
save: Save
|
53
88
|
site_name: "Site Name: "
|
54
89
|
username: "Username: "
|
data/lib/cartoonist/engine.rb
CHANGED
@@ -3,6 +3,8 @@ module Cartoonist
|
|
3
3
|
# Use this hook to configure devise mailer, warden hooks and so forth.
|
4
4
|
# Many of these configuration options can be set straight in your model.
|
5
5
|
Devise.setup do |devise_config|
|
6
|
+
devise_config.parent_controller = "CartoonistController"
|
7
|
+
|
6
8
|
# ==> Mailer Configuration
|
7
9
|
# Configure the e-mail address which will be shown in Devise::Mailer,
|
8
10
|
# note that it will be overwritten if you use your own mailer class with default "from" parameter.
|
@@ -358,6 +360,8 @@ module Cartoonist
|
|
358
360
|
end
|
359
361
|
end
|
360
362
|
|
363
|
+
resources :accounts
|
364
|
+
|
361
365
|
resources :admin do
|
362
366
|
collection do
|
363
367
|
get "cache_cron"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cartoonist
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-04-
|
12
|
+
date: 2012-04-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: devise
|
16
|
-
requirement: &
|
16
|
+
requirement: &6819100 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 2.0.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *6819100
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: jquery-rails
|
27
|
-
requirement: &
|
27
|
+
requirement: &6817240 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 2.0.0
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *6817240
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: railties
|
38
|
-
requirement: &
|
38
|
+
requirement: &6816220 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 3.2.0
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *6816220
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: redcarpet
|
49
|
-
requirement: &
|
49
|
+
requirement: &6815620 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 2.1.0
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *6815620
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: twitter
|
60
|
-
requirement: &
|
60
|
+
requirement: &6814720 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
version: 2.2.0
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *6814720
|
69
69
|
description: This provides the main functionality and plugin api for Cartoonist.
|
70
70
|
email: reasonnumber@gmail.com
|
71
71
|
executables: []
|
@@ -75,6 +75,7 @@ files:
|
|
75
75
|
- .gitignore
|
76
76
|
- app/assets/javascripts/cartoonist.js.erb
|
77
77
|
- app/assets/stylesheets/admin.css.scss
|
78
|
+
- app/controllers/accounts_controller.rb
|
78
79
|
- app/controllers/admin_controller.rb
|
79
80
|
- app/controllers/cache_controller.rb
|
80
81
|
- app/controllers/cartoonist_controller.rb
|
@@ -93,8 +94,13 @@ files:
|
|
93
94
|
- app/models/static_cache.rb
|
94
95
|
- app/models/tweetable.rb
|
95
96
|
- app/models/user.rb
|
97
|
+
- app/views/accounts/edit.html.erb
|
98
|
+
- app/views/accounts/index.html.erb
|
99
|
+
- app/views/accounts/new.html.erb
|
100
|
+
- app/views/accounts/show.html.erb
|
96
101
|
- app/views/admin/main.html.erb
|
97
102
|
- app/views/cache/index.html.erb
|
103
|
+
- app/views/layouts/accounts.html.erb
|
98
104
|
- app/views/layouts/admin.html.erb
|
99
105
|
- app/views/layouts/cartoonist.html.erb
|
100
106
|
- app/views/layouts/cartoonist.rss.erb
|