caboose-cms 0.3.89 → 0.3.90
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/app/assets/javascripts/caboose/model/all.js +2 -0
- data/app/assets/javascripts/caboose/model/bound_s3_image.js +49 -7
- data/app/assets/javascripts/caboose/model/s3.js +4 -19
- data/app/controllers/caboose/application_controller.rb +7 -1
- data/app/controllers/caboose/pages_controller.rb +2 -2
- data/app/models/caboose/schema.rb +5 -1
- data/app/models/caboose/user.rb +5 -2
- data/lib/caboose/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZTUzNGI0MTc3Mzc3Njg0ZGMyZWRmNDM1OThjOTU4YTUwMWIxZjMyOQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NmJlMDY1NDE5OTg1YzlmZjRmYmJkNmFmODE2ZGQ4MDczOGRlODM3Mw==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NzdiYmNlNDFhZTg2YWE2NTFhNDlmMzA0YjhmZGE0MTI0ZjVhNTBjMTU3NzY5
|
10
|
+
N2UyNWUxNDU1MGE1ZDViMTJkNTIyODFkNjU1ZWM2MTY3Y2RmOGZhMzAxMGVi
|
11
|
+
NjJlMzAyNTkyMDg5OTU0MGYyNjg1N2FmNTJhMjRlMzYyOTg5ODg=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZGJjZGI5MmIzOWZlODAzOTAwODQ3M2JmNDNkMzY3ZjRmNTEzMDBmODE0ZjYw
|
14
|
+
N2YyN2RmYTY2YjU4YTA1MDMyMzNhZDUyZDA4NWIxYThkNjdhODE2NmU1Yjgz
|
15
|
+
ZTg0MzYyMTgzODM5NGRjYTdhZTYyZWIwMzcwYWYwMTRiMjI0YzA=
|
@@ -1,11 +1,13 @@
|
|
1
1
|
//= require caboose/model/class
|
2
2
|
//= require caboose/model/model
|
3
|
+
//= require caboose/model/s3
|
3
4
|
//= require caboose/model/attribute
|
4
5
|
//= require caboose/model/model_binder
|
5
6
|
//= require caboose/model/bound_control
|
6
7
|
//= require caboose/model/bound_checkbox
|
7
8
|
//= require caboose/model/bound_checkbox_multiple
|
8
9
|
//= require caboose/model/bound_image
|
10
|
+
//= require caboose/model/bound_s3_image
|
9
11
|
//= require caboose/model/bound_file
|
10
12
|
//= require caboose/model/bound_select
|
11
13
|
//= require caboose/model/bound_text
|
@@ -1,3 +1,33 @@
|
|
1
|
+
/*
|
2
|
+
{
|
3
|
+
"expiration": "2007-12-01T12:00:00.000Z",
|
4
|
+
"conditions": [
|
5
|
+
{"bucket": "johnsmith"},
|
6
|
+
["starts-with", "$key", "user/eric/"],
|
7
|
+
{"acl": "public-read"},
|
8
|
+
{"success_action_redirect": "http://johnsmith.s3.amazonaws.com/successful_upload.html"},
|
9
|
+
["starts-with", "$Content-Type", "image/"],
|
10
|
+
{"x-amz-meta-uuid": "14365123651274"},
|
11
|
+
["starts-with", "$x-amz-meta-tag", ""]
|
12
|
+
]
|
13
|
+
}
|
14
|
+
key = '1234'
|
15
|
+
signature = 'abcdef'
|
16
|
+
return Base64.encode64(OpenSSL::HMAC.digest('sha1', key, signature))
|
17
|
+
|
18
|
+
<form action="http://johnsmith.s3.amazonaws.com/" method="post" enctype="multipart/form-data">
|
19
|
+
<input type="hidden" name="AWSAccessKeyId" value="AKIAIOSFODNN7EXAMPLE" />
|
20
|
+
<input type="hidden" name="acl" value="public-read" />
|
21
|
+
<input type="hidden" name="policy" value="POLICY" />
|
22
|
+
<input type="hidden" name="Signature" value="SIGNATURE" />
|
23
|
+
<input type="hidden" name="success_action_status" value="200" />
|
24
|
+
<input type="hidden" name="key" value="uploads/1.jpg" />
|
25
|
+
|
26
|
+
File: <input type="file" name="file" /><br />
|
27
|
+
|
28
|
+
<input type="submit" name="submit" value="Upload to Amazon S3" />
|
29
|
+
</form>
|
30
|
+
*/
|
1
31
|
|
2
32
|
BoundS3Image = BoundControl.extend({
|
3
33
|
|
@@ -34,21 +64,33 @@ BoundS3Image = BoundControl.extend({
|
|
34
64
|
.css('margin-right', 10)
|
35
65
|
);
|
36
66
|
|
37
|
-
|
67
|
+
var s3 = this.attribute.s3;
|
38
68
|
$('#'+this.el+'_container')
|
39
69
|
.append($('<form target="' + this.el + '_iframe"></form>')
|
40
70
|
.attr('id', this.el + '_form')
|
41
|
-
.attr('action', this.attribute.
|
71
|
+
.attr('action', 'http://' + this.attribute.s3.bucket + '.s3.amazonaws.com/')
|
42
72
|
.attr('method', 'post')
|
43
73
|
.attr('enctype', 'multipart/form-data')
|
44
|
-
.attr('encoding', 'multipart/form-data')
|
45
|
-
//.attr('target', this.el + '_iframe')
|
74
|
+
.attr('encoding', 'multipart/form-data')
|
46
75
|
.on('submit', function() {
|
47
76
|
$('#'+this2.el+'_message').html("<p class='loading'>Uploading...</p>");
|
48
|
-
$('#'+this2.el+'_iframe').on('load', function() {
|
77
|
+
$('#'+this2.el+'_iframe').on('load', function() {
|
78
|
+
$.ajax({
|
79
|
+
url: this2.attribute.update_url,
|
80
|
+
type: 'post',
|
81
|
+
success: function(resp) {
|
82
|
+
this2.post_upload();
|
83
|
+
}
|
84
|
+
});
|
85
|
+
});
|
49
86
|
return true;
|
50
87
|
})
|
51
|
-
.append($('<input/>').attr('type',
|
88
|
+
.append($('<input/>').attr('type','hidden').attr('name', "AWSAccessKeyId" ).val(s3.access_key_id))
|
89
|
+
.append($('<input/>').attr('type','hidden').attr('name', "acl" ).val(s3.acl))
|
90
|
+
.append($('<input/>').attr('type','hidden').attr('name', "policy" ).val(s3.policy))
|
91
|
+
.append($('<input/>').attr('type','hidden').attr('name', "Signature" ).val(s3.signature))
|
92
|
+
.append($('<input/>').attr('type','hidden').attr('name', "success_action_status" ).val("200"))
|
93
|
+
.append($('<input/>').attr('type','hidden').attr('name', "key" ).val(s3.key))
|
52
94
|
.append($('<div/>')
|
53
95
|
.attr('id', this.el + '_fake_file_input')
|
54
96
|
.addClass('mb_fake_file_input')
|
@@ -61,7 +103,7 @@ BoundS3Image = BoundControl.extend({
|
|
61
103
|
.append($('<input/>')
|
62
104
|
.attr('type', 'file')
|
63
105
|
.attr('id', this.el + '_file')
|
64
|
-
.attr('name',
|
106
|
+
.attr('name', 'file')
|
65
107
|
.change(function() { $('#'+this2.el+'_form').trigger('submit'); })
|
66
108
|
)
|
67
109
|
.append($('<input/>')
|
@@ -4,26 +4,11 @@ var S3 = function(params) {
|
|
4
4
|
this[thing] = params[thing];
|
5
5
|
};
|
6
6
|
|
7
|
-
S3.prototype = {
|
8
|
-
|
9
|
-
|
10
|
-
|
7
|
+
S3.prototype = {
|
8
|
+
bucket: '',
|
9
|
+
access_key_id: '',
|
11
10
|
acl: 'public-read',
|
12
|
-
key: '',
|
13
11
|
policy: '',
|
14
12
|
signature: '',
|
15
|
-
|
16
|
-
|
17
|
-
access_key_id: '', // AWSAccessKeyId
|
18
|
-
acl: 'public-read',
|
19
|
-
bucket: '',
|
20
|
-
key: '',
|
21
|
-
policy: '',
|
22
|
-
redirect: '', // success_action_redirect
|
23
|
-
signature: '',
|
24
|
-
security_token: '', // x-amz-security-token
|
25
|
-
file
|
26
|
-
|
13
|
+
key: ''
|
27
14
|
};
|
28
|
-
|
29
|
-
|
@@ -12,6 +12,12 @@ module Caboose
|
|
12
12
|
# Modify the built-in params array with URL params if necessary
|
13
13
|
parse_url_params if Caboose.use_url_params
|
14
14
|
|
15
|
+
# Make sure someone is logged in
|
16
|
+
if !logged_in?
|
17
|
+
elo = User.find(User::LOGGED_OUT_USER_ID)
|
18
|
+
login_user(elo)
|
19
|
+
end
|
20
|
+
|
15
21
|
session['use_redirect_urls'] = true if session['use_redirect_urls'].nil?
|
16
22
|
|
17
23
|
# Initialize AB Testing
|
@@ -76,7 +82,7 @@ module Caboose
|
|
76
82
|
def logged_in?
|
77
83
|
validate_token
|
78
84
|
validate_cookie
|
79
|
-
return true if !session["app_user"].nil? && session["app_user"] != false && session["app_user"].id != -1
|
85
|
+
return true if !session["app_user"].nil? && session["app_user"] != false && session["app_user"].id != -1 && session["app_user"].id != User::LOGGED_OUT_USER_ID
|
80
86
|
return false
|
81
87
|
end
|
82
88
|
|
@@ -19,9 +19,9 @@ module Caboose
|
|
19
19
|
return
|
20
20
|
end
|
21
21
|
|
22
|
-
user = logged_in_user
|
22
|
+
user = logged_in_user
|
23
23
|
if !user.is_allowed(page, 'view')
|
24
|
-
if user.id == User
|
24
|
+
if user.id == User::LOGGED_OUT_USER_ID
|
25
25
|
redirect_to "/modal/login?return_url=" + URI.encode(request.fullpath)
|
26
26
|
return
|
27
27
|
else
|
@@ -229,7 +229,11 @@ class Caboose::Schema < Caboose::Utilities::Schema
|
|
229
229
|
admin_user.password = Digest::SHA1.hexdigest(Caboose::salt + 'caboose')
|
230
230
|
admin_user.save
|
231
231
|
end
|
232
|
-
admin_user = Caboose::User.where(:username => 'admin').first if admin_user.nil?
|
232
|
+
admin_user = Caboose::User.where(:username => 'admin').first if admin_user.nil?
|
233
|
+
|
234
|
+
if !Caboose::User.where(:id => Caboose::User::LOGGED_OUT_USER_ID).exists?
|
235
|
+
Caboose::User.create(:id => Caboose::User::LOGGED_OUT_USER_ID, :first_name => 'Logged', :last_name => 'Out', :username => 'elo', :email => 'elo@nine.is')
|
236
|
+
end
|
233
237
|
|
234
238
|
Caboose::Role.create(:parent_id => -1 , :name => 'Admin' ) if !Caboose::Role.exists?(:name => 'Admin' )
|
235
239
|
admin_role = Caboose::Role.where(:name => 'Admin' ).first
|
data/app/models/caboose/user.rb
CHANGED
@@ -12,8 +12,11 @@ class Caboose::User < ActiveRecord::Base
|
|
12
12
|
:large => '600x800>'
|
13
13
|
}
|
14
14
|
do_not_validate_attachment_file_type :image
|
15
|
-
attr_accessible :email, :first_name, :last_name, :username, :token, :password, :phone
|
16
|
-
|
15
|
+
attr_accessible :id, :email, :first_name, :last_name, :username, :token, :password, :phone
|
16
|
+
|
17
|
+
ADMIN_USER_ID = 1
|
18
|
+
LOGGED_OUT_USER_ID = 2
|
19
|
+
|
17
20
|
before_save do
|
18
21
|
self.email = self.email.downcase if self.email
|
19
22
|
end
|
data/lib/caboose/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: caboose-cms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.90
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- William Barry
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-04-
|
11
|
+
date: 2014-04-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|