refinerycms 0.9.5.21 → 0.9.5.22
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/.gems +7 -5
- data/README +3 -3
- data/VERSION +1 -1
- data/config/environment.rb +2 -2
- data/db/migrate/20091207033335_add_superuser_to_users.rb +12 -0
- data/db/schema.rb +2 -1
- data/public/javascripts/wymeditor/jquery.refinery.wymeditor.js +92 -82
- data/vendor/plugins/authentication/app/controllers/users_controller.rb +25 -24
- data/vendor/plugins/authentication/app/models/user.rb +4 -0
- data/vendor/plugins/authentication/app/views/admin/users/index.html.erb +1 -1
- data/vendor/plugins/refinery/app/views/shared/_content_page.html.erb +1 -1
- metadata +3 -2
data/.gems
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
rake --version '>= 0.8.3'
|
2
|
-
friendly_id --version '>= 2.
|
3
|
-
|
4
|
-
rails --version '>= 2.3.
|
5
|
-
|
6
|
-
unicode --version '>= 0.1'
|
2
|
+
friendly_id --version '>= 2.2.2'
|
3
|
+
will_paginate --version '>= 2.3.11'
|
4
|
+
rails --version '>= 2.3.5'
|
5
|
+
aasm --version '>= 2.1.3'
|
6
|
+
unicode --version '>= 0.1'
|
7
|
+
slim_scrooge --version '>= 1.0.1'
|
8
|
+
hpricot --version '= 0.8.1'
|
data/README
CHANGED
@@ -50,15 +50,15 @@ You will be prompted to setup your first user.
|
|
50
50
|
|
51
51
|
== Environment required
|
52
52
|
|
53
|
-
Refinery runs using a number of gems which (as of Refinery version 0.9.5) are outlined below:
|
53
|
+
Refinery runs using a number of gems which (as of Refinery version 0.9.5.21) are outlined below:
|
54
54
|
|
55
55
|
- "rake", :version => ">= 0.8.3"
|
56
56
|
- "friendly_id", :version => ">= 2.2.2"
|
57
57
|
- "will_paginate", :version => ">= 2.3.11"
|
58
|
-
- "rails", :version => ">= 2.3.
|
58
|
+
- "rails", :version => ">= 2.3.5"
|
59
59
|
- "aasm", :version => ">= 2.1.3"
|
60
60
|
- "unicode", :version => ">= 0.1"
|
61
|
-
- "slim_scrooge", :version => ">= 1.0.
|
61
|
+
- "slim_scrooge", :version => ">= 1.0.3"
|
62
62
|
- "hpricot", :version => "= 0.8.1"
|
63
63
|
|
64
64
|
== Updates to core files
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.9.5.
|
1
|
+
0.9.5.22
|
data/config/environment.rb
CHANGED
@@ -66,10 +66,10 @@ eval("#{(defined? Refinery::Initializer) ? Refinery : Rails}::Initializer").run
|
|
66
66
|
config.gem "rake", :version => ">= 0.8.3", :lib => "rake"
|
67
67
|
config.gem "friendly_id", :version => ">= 2.2.2", :lib => "friendly_id"
|
68
68
|
config.gem "will_paginate", :version => ">= 2.3.11", :lib => "will_paginate", :source => "http://gemcutter.org"
|
69
|
-
config.gem "rails", :version => ">= 2.3.
|
69
|
+
config.gem "rails", :version => ">= 2.3.5", :lib => "rails"
|
70
70
|
config.gem "aasm", :version => ">= 2.1.3", :lib => "aasm", :source => "http://gemcutter.org"
|
71
71
|
config.gem "unicode", :version => ">= 0.1", :lib => "unicode"
|
72
|
-
config.gem "slim_scrooge", :version => ">= 1.0.
|
72
|
+
config.gem "slim_scrooge", :version => ">= 1.0.3", :lib => "slim_scrooge", :source => "http://gemcutter.org" #unless RUBY_PLATFORM =~ /mswin|mingw/ # kill gem when windows is running.
|
73
73
|
config.gem "hpricot", :version => "= 0.8.1", :lib => "hpricot", :source => "http://gemcutter.org"
|
74
74
|
#===REFINERY END OF REQUIRED GEMS===
|
75
75
|
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
class AddSuperuserToUsers < ActiveRecord::Migration
|
2
|
+
def self.up
|
3
|
+
add_column :users, :superuser, :boolean, :default => false
|
4
|
+
unless (user = User.first).nil?
|
5
|
+
user.update_attribute(:superuser, true)
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.down
|
10
|
+
remove_column :users, :superuser
|
11
|
+
end
|
12
|
+
end
|
data/db/schema.rb
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
#
|
10
10
|
# It's strongly recommended to check this file into your version control system.
|
11
11
|
|
12
|
-
ActiveRecord::Schema.define(:version =>
|
12
|
+
ActiveRecord::Schema.define(:version => 20091207033335) do
|
13
13
|
|
14
14
|
create_table "images", :force => true do |t|
|
15
15
|
t.integer "parent_id"
|
@@ -145,6 +145,7 @@ ActiveRecord::Schema.define(:version => 20091130040711) do
|
|
145
145
|
t.datetime "deleted_at"
|
146
146
|
t.datetime "created_at"
|
147
147
|
t.datetime "updated_at"
|
148
|
+
t.boolean "superuser", :default => false
|
148
149
|
end
|
149
150
|
|
150
151
|
add_index "users", ["id"], :name => "index_users_on_id"
|
@@ -1236,7 +1236,7 @@ WYMeditor.editor.prototype.dialog = function( dialogType ) {
|
|
1236
1236
|
}
|
1237
1237
|
}
|
1238
1238
|
}
|
1239
|
-
|
1239
|
+
}
|
1240
1240
|
|
1241
1241
|
// set up handlers.
|
1242
1242
|
imageGroup = null;
|
@@ -1250,7 +1250,7 @@ WYMeditor.editor.prototype.dialog = function( dialogType ) {
|
|
1250
1250
|
parent_node = selected;
|
1251
1251
|
}
|
1252
1252
|
|
1253
|
-
if (parent_node != null && parent_node.tagName.toLowerCase() != WYMeditor.A)
|
1253
|
+
if ((parent_node != null) && (dialogType != WYMeditor.DIALOG_PASTE) && (parent_node.tagName.toLowerCase() != WYMeditor.A))
|
1254
1254
|
{
|
1255
1255
|
// wrap the current selection with a funky span (not required for safari)
|
1256
1256
|
if (!this._selected_image && !jQuery.browser.safari)
|
@@ -1260,15 +1260,17 @@ WYMeditor.editor.prototype.dialog = function( dialogType ) {
|
|
1260
1260
|
}
|
1261
1261
|
else {
|
1262
1262
|
if (!this._selected_image) {
|
1263
|
-
parent_node._id_before_replaceable =
|
1263
|
+
parent_node._id_before_replaceable = parent_node.id;
|
1264
1264
|
parent_node.id = 'replace_me_with_' + this._current_unique_stamp;
|
1265
1265
|
}
|
1266
1266
|
|
1267
|
-
|
1268
|
-
|
1269
|
-
|
1270
|
-
|
1271
|
-
|
1267
|
+
if (dialogType != WYMeditor.DIALOG_PASTE) {
|
1268
|
+
path += (this._wym._options.dialogFeatures.length == 0) ? "?" : "&";
|
1269
|
+
port = (window.location.port.length > 0 ? (":" + window.location.port) : "")
|
1270
|
+
path += "current_link=" + parent_node.href.gsub(window.location.protocol + "//" + window.location.hostname + port, "");
|
1271
|
+
path += "&target_blank=" + (parent_node.target == "_blank" ? "true" : "false");
|
1272
|
+
}
|
1273
|
+
}
|
1272
1274
|
|
1273
1275
|
// launch thickbox
|
1274
1276
|
|
@@ -1332,9 +1334,14 @@ WYMeditor.editor.prototype.uniqueStamp = function() {
|
|
1332
1334
|
};
|
1333
1335
|
|
1334
1336
|
WYMeditor.editor.prototype.paste = function(sData) {
|
1335
|
-
|
1337
|
+
|
1338
|
+
this.format_block();
|
1339
|
+
|
1336
1340
|
var sTmp;
|
1337
|
-
|
1341
|
+
replaceable = jQuery(this._doc.body).find('#replace_me_with_' + this._current_unique_stamp);
|
1342
|
+
|
1343
|
+
// replaceable doesn't actually get replaced here, it's just used as a marker for where the cursor was.
|
1344
|
+
var container = replaceable[0] || this.selected();
|
1338
1345
|
|
1339
1346
|
//split the data, using double newlines as the separator
|
1340
1347
|
var aP = sData.split(this._newLine + this._newLine);
|
@@ -1343,19 +1350,31 @@ WYMeditor.editor.prototype.paste = function(sData) {
|
|
1343
1350
|
//add a P for each item
|
1344
1351
|
if(container && container.tagName.toLowerCase() != WYMeditor.BODY) {
|
1345
1352
|
for(x = aP.length - 1; x >= 0; x--) {
|
1346
|
-
|
1347
|
-
|
1348
|
-
|
1349
|
-
|
1353
|
+
sTmp = aP[x];
|
1354
|
+
//simple newlines are replaced by a break
|
1355
|
+
sTmp = sTmp.replace(rExp, "<br />");
|
1356
|
+
if (x == aP.length-1 && jQuery(container).html().gsub(/<br\ ?\/?>/, "").length == 0) {
|
1357
|
+
jQuery(container).html(sTmp);
|
1358
|
+
} else {
|
1359
|
+
jQuery(container).after("<p>" + sTmp + "</p>");
|
1360
|
+
}
|
1350
1361
|
}
|
1351
1362
|
} else {
|
1352
1363
|
for(x = 0; x < aP.length; x++) {
|
1353
|
-
|
1354
|
-
|
1355
|
-
|
1356
|
-
|
1364
|
+
sTmp = aP[x];
|
1365
|
+
//simple newlines are replaced by a break
|
1366
|
+
sTmp = sTmp.replace(rExp, "<br />");
|
1367
|
+
if (x == 0 && jQuery(container).html().gsub(/<br\ ?\/?>/, "").length == 0) {
|
1368
|
+
jQuery(container).html(sTmp);
|
1369
|
+
} else {
|
1370
|
+
jQuery(this._doc.body).append("<p>" + sTmp + "</p>");
|
1371
|
+
}
|
1357
1372
|
}
|
1373
|
+
}
|
1358
1374
|
|
1375
|
+
if (replaceable[0] != null) {
|
1376
|
+
// set the id of the container back.
|
1377
|
+
replaceable[0].id = replaceable[0]._id_before_replaceable;
|
1359
1378
|
}
|
1360
1379
|
};
|
1361
1380
|
|
@@ -1363,7 +1382,7 @@ WYMeditor.editor.prototype.insert = function(html) {
|
|
1363
1382
|
// Do we have a selection?
|
1364
1383
|
if (this._iframe.contentWindow.getSelection().focusNode != null) {
|
1365
1384
|
// Overwrite selection with provided html
|
1366
|
-
this._exec(
|
1385
|
+
this._exec(WYMeditor.INSERT_HTML, html);
|
1367
1386
|
} else {
|
1368
1387
|
// Fall back to the internal paste function if there's no selection
|
1369
1388
|
this.paste(html);
|
@@ -1398,6 +1417,32 @@ WYMeditor.editor.prototype.addCssRules = function(doc, aCss) {
|
|
1398
1417
|
}
|
1399
1418
|
};
|
1400
1419
|
|
1420
|
+
WYMeditor.editor.prototype.format_block = function(selected) {
|
1421
|
+
|
1422
|
+
//'this' should be the wymeditor instance.
|
1423
|
+
var wym = this;
|
1424
|
+
|
1425
|
+
var container = selected || wym.selected();
|
1426
|
+
|
1427
|
+
wym._selected_image = null;
|
1428
|
+
|
1429
|
+
var name = container.tagName.toLowerCase();
|
1430
|
+
|
1431
|
+
//fix forbidden main containers
|
1432
|
+
if(
|
1433
|
+
name == "strong" ||
|
1434
|
+
name == "b" ||
|
1435
|
+
name == "em" ||
|
1436
|
+
name == "i" ||
|
1437
|
+
name == "sub" ||
|
1438
|
+
name == "sup" ||
|
1439
|
+
name == "a"
|
1440
|
+
|
1441
|
+
) name = container.parentNode.tagName.toLowerCase();
|
1442
|
+
|
1443
|
+
if(name == WYMeditor.BODY) wym._exec(WYMeditor.FORMAT_BLOCK, WYMeditor.P);
|
1444
|
+
};
|
1445
|
+
|
1401
1446
|
/********** CONFIGURATION **********/
|
1402
1447
|
|
1403
1448
|
WYMeditor.editor.prototype.computeBasePath = function() {
|
@@ -4470,71 +4515,36 @@ WYMeditor.WymClassMozilla.prototype.keyup = function(evt) {
|
|
4470
4515
|
|
4471
4516
|
//'this' is the doc
|
4472
4517
|
var wym = WYMeditor.INSTANCES[this.title];
|
4473
|
-
|
4474
|
-
|
4475
|
-
|
4476
|
-
|
4477
|
-
|
4478
|
-
|
4479
|
-
|
4480
|
-
|
4481
|
-
|
4482
|
-
|
4483
|
-
|
4484
|
-
|
4485
|
-
|
4486
|
-
|
4487
|
-
|
4488
|
-
|
4489
|
-
|
4490
|
-
|
4491
|
-
|
4492
|
-
|
4493
|
-
|
4494
|
-
|
4495
|
-
|
4496
|
-
|
4497
|
-
|
4498
|
-
|
4499
|
-
|
4518
|
+
if (wym != null) {
|
4519
|
+
wym._selected_image = null;
|
4520
|
+
var container = null;
|
4521
|
+
|
4522
|
+
if(evt.keyCode == 13 && !evt.shiftKey) {
|
4523
|
+
|
4524
|
+
//RETURN key
|
4525
|
+
//cleanup <br><br> between paragraphs
|
4526
|
+
jQuery(wym._doc.body).children(WYMeditor.BR).remove();
|
4527
|
+
|
4528
|
+
//fix PRE bug #73
|
4529
|
+
container = wym.selected();
|
4530
|
+
if(container && container.tagName.toLowerCase() == WYMeditor.PRE)
|
4531
|
+
wym._exec(WYMeditor.FORMAT_BLOCK, WYMeditor.P); //create P after PRE
|
4532
|
+
}
|
4533
|
+
|
4534
|
+
else if(evt.keyCode != 8
|
4535
|
+
&& evt.keyCode != 17
|
4536
|
+
&& evt.keyCode != 46
|
4537
|
+
&& evt.keyCode != 224
|
4538
|
+
&& !evt.metaKey
|
4539
|
+
&& !evt.ctrlKey) {
|
4540
|
+
//NOT BACKSPACE, NOT DELETE, NOT CTRL, NOT COMMAND
|
4541
|
+
//text nodes replaced by P
|
4542
|
+
|
4543
|
+
wym.format_block();
|
4544
|
+
}
|
4545
|
+
}
|
4500
4546
|
};
|
4501
4547
|
|
4502
|
-
WYMeditor.WymClassMozilla.prototype.paste = function(evt) {
|
4503
|
-
|
4504
|
-
var wym = WYMeditor.INSTANCES[this.title];
|
4505
|
-
|
4506
|
-
wym.format_block();
|
4507
|
-
|
4508
|
-
};
|
4509
|
-
|
4510
|
-
WYMeditor.WymClassMozilla.prototype.format_block = function(selected) {
|
4511
|
-
|
4512
|
-
//'this' should be the wymeditor instance.
|
4513
|
-
var wym = this;
|
4514
|
-
|
4515
|
-
selected = selected || wym.selected();
|
4516
|
-
|
4517
|
-
wym._selected_image = null;
|
4518
|
-
var container = null;
|
4519
|
-
|
4520
|
-
container = wym.selected();
|
4521
|
-
var name = container.tagName.toLowerCase();
|
4522
|
-
|
4523
|
-
//fix forbidden main containers
|
4524
|
-
if(
|
4525
|
-
name == "strong" ||
|
4526
|
-
name == "b" ||
|
4527
|
-
name == "em" ||
|
4528
|
-
name == "i" ||
|
4529
|
-
name == "sub" ||
|
4530
|
-
name == "sup" ||
|
4531
|
-
name == "a"
|
4532
|
-
|
4533
|
-
) name = container.parentNode.tagName.toLowerCase();
|
4534
|
-
|
4535
|
-
if(name == WYMeditor.BODY) wym._exec(WYMeditor.FORMAT_BLOCK, WYMeditor.P);
|
4536
|
-
}
|
4537
|
-
|
4538
4548
|
WYMeditor.WymClassMozilla.prototype.enableDesignMode = function() {
|
4539
4549
|
if(this.designMode == "off") {
|
4540
4550
|
try {
|
@@ -17,29 +17,30 @@ class UsersController < ApplicationController
|
|
17
17
|
render :text => "User signup is disabled", :layout => true
|
18
18
|
else
|
19
19
|
begin
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
else
|
41
|
-
render :action => 'new'
|
20
|
+
cookies.delete :auth_token
|
21
|
+
# protects against session fixation attacks, wreaks havoc with
|
22
|
+
# request forgery protection.
|
23
|
+
# uncomment at your own risk
|
24
|
+
# reset_session
|
25
|
+
@user = User.new(params[:user])
|
26
|
+
@selected_plugin_titles = params[:user][:plugins] || []
|
27
|
+
|
28
|
+
@user.register! if @user.valid?
|
29
|
+
if @user.errors.empty?
|
30
|
+
@user.plugins = @selected_plugin_titles
|
31
|
+
self.current_user = @user
|
32
|
+
current_user.activate!
|
33
|
+
current_user.update_attribute(:superuser, true) if User.count == 1 # this is the superuser if this user is the only user.
|
34
|
+
redirect_back_or_default(admin_root_url)
|
35
|
+
|
36
|
+
flash[:notice] = "Welcome to Refinery, #{current_user.login}."
|
37
|
+
if User.count == 1 or RefinerySetting[:site_name] == "Company Name"
|
38
|
+
refinery_setting = RefinerySetting.find_by_name("site_name")
|
39
|
+
flash[:notice] << "<br/>First let's give the site a name. <a href='#{edit_admin_refinery_setting_url(refinery_setting)}'>Go here</a> to edit your website's name"
|
42
40
|
end
|
41
|
+
else
|
42
|
+
render :action => 'new'
|
43
|
+
end
|
43
44
|
end
|
44
45
|
end
|
45
46
|
end
|
@@ -50,7 +51,7 @@ class UsersController < ApplicationController
|
|
50
51
|
current_user.activate!
|
51
52
|
flash[:notice] = "Signup complete!"
|
52
53
|
end
|
53
|
-
redirect_back_or_default(
|
54
|
+
redirect_back_or_default(root_url)
|
54
55
|
end
|
55
56
|
|
56
57
|
def suspend
|
@@ -84,4 +85,4 @@ protected
|
|
84
85
|
User.count == 0
|
85
86
|
end
|
86
87
|
|
87
|
-
end
|
88
|
+
end
|
@@ -121,6 +121,10 @@ class User < ActiveRecord::Base
|
|
121
121
|
@activated
|
122
122
|
end
|
123
123
|
|
124
|
+
def ui_deletable?(current_user = self)
|
125
|
+
!self.superuser and User.count > 1 and (current_user.nil? or self.id != current_user.id)
|
126
|
+
end
|
127
|
+
|
124
128
|
protected
|
125
129
|
# before filter
|
126
130
|
def encrypt_password
|
@@ -16,7 +16,7 @@
|
|
16
16
|
<%= link_to refinery_icon_tag('delete.png'), admin_user_path(user),
|
17
17
|
:confirm => "Are you sure you want to delete '#{user.login}'?",
|
18
18
|
:class => "cancel", :method => :delete,
|
19
|
-
:title => "Remove this user forever" if
|
19
|
+
:title => "Remove this user forever" if user.ui_deletable?(current_user) %>
|
20
20
|
<%= link_to refinery_icon_tag('application_edit.png'), edit_admin_user_path(user),
|
21
21
|
:title => 'Edit this user' %>
|
22
22
|
<%= mail_to user.email, refinery_icon_tag('email_go.png'), :title => 'Email this user' %>
|
@@ -9,7 +9,7 @@
|
|
9
9
|
</div>
|
10
10
|
</div>
|
11
11
|
<% unless @page.live? %>
|
12
|
-
<div
|
12
|
+
<div class='page_not_live'>
|
13
13
|
This page is NOT live for public viewing.
|
14
14
|
</div>
|
15
15
|
<% end %>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: refinerycms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.5.
|
4
|
+
version: 0.9.5.22
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Resolve Digital
|
@@ -11,7 +11,7 @@ autorequire:
|
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
13
|
|
14
|
-
date: 2009-12-
|
14
|
+
date: 2009-12-08 00:00:00 +13:00
|
15
15
|
default_executable:
|
16
16
|
dependencies: []
|
17
17
|
|
@@ -58,6 +58,7 @@ files:
|
|
58
58
|
- db/migrate/20091029034951_remove_blurb_from_news_items.rb
|
59
59
|
- db/migrate/20091109012126_add_missing_indexes.rb
|
60
60
|
- db/migrate/20091130040711_add_down_for_maintenance_page.rb
|
61
|
+
- db/migrate/20091207033335_add_superuser_to_users.rb
|
61
62
|
- db/schema.rb
|
62
63
|
- db/seeds.rb
|
63
64
|
- lib/refinery_initializer.rb
|