locomotive_cms 2.5.0 → 2.5.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3ef76c00474201ef23deca934853055bec727876
4
- data.tar.gz: 6812f734f165cd6029b2ffec2cf21b6c026684a9
3
+ metadata.gz: d79c21569c5137978e3d1c2bcb0fc979ae1ceb5c
4
+ data.tar.gz: 79fe09d1318424c387abb7b545a16f30598885b5
5
5
  SHA512:
6
- metadata.gz: 9173992244e46b4f8c2445fc158817591ec68de92060fc0dc9f0022e17b8c7fcec535187390b0cab84f714e152591ad4d49d30885b12f96e24406d2c0ce9ddc7
7
- data.tar.gz: e9863f21393ac87b1abf95c96e3ab73c9ee0450b87a1ca5271c2321fac9f65eec061d53b280b9119753a095bd1df3445a2f73f10faa6fdd4945423ab7a6296ec
6
+ metadata.gz: 7bf645dc0029bafcbb19028434be2653522efd1e95c0261e95eaa69b39dc905a9a7f577ab8bb081cebbb746945facf4272abb894d6afa979a1e300c3a4f68fc7
7
+ data.tar.gz: 7eae460e4ca873b5d60e5f4e7950a5f7e5e071a9ebafe677faa4468a7f544feb56bfb1cd2354c06a8b5ea4d540aaf730a904a0fad1c1ce0c0d5cb60c24a7f468
@@ -40,10 +40,15 @@ module Locomotive
40
40
  end
41
41
 
42
42
  def set_locale
43
- ::Mongoid::Fields::I18n.locale = params[:locale] || current_site.default_locale
43
+ locale = params[:locale] ||
44
+ current_site.try(:default_locale) ||
45
+ current_locomotive_account.try(:locale) ||
46
+ Locomotive.config.default_locale
47
+
48
+ ::Mongoid::Fields::I18n.locale = locale
44
49
  ::I18n.locale = ::Mongoid::Fields::I18n.locale
45
50
 
46
- self.setup_i18n_fallbacks
51
+ self.setup_i18n_fallbacks if current_site
47
52
  end
48
53
 
49
54
  def render_access_denied(exception)
@@ -6,7 +6,7 @@ module Locomotive
6
6
 
7
7
  def create
8
8
  begin
9
- token = Account.create_api_token(current_site, params[:email], params[:password], params[:api_key])
9
+ token = Account.create_api_token(params[:email], params[:password], params[:api_key])
10
10
  respond_with({ token: token }, location: root_url)
11
11
  rescue Exception => e
12
12
  respond_with({ message: e.message }, status: 401, location: root_url)
@@ -15,9 +15,9 @@ module Locomotive
15
15
  @membership = Membership.new(account: @account, role: 'admin')
16
16
  end
17
17
 
18
- return false if @membership.nil?
19
-
20
- if @membership.admin?
18
+ if @membership.nil?
19
+ setup_account_without_a_site
20
+ elsif @membership.admin?
21
21
  setup_admin_permissions!
22
22
  else
23
23
  setup_default_permissions!
@@ -28,6 +28,12 @@ module Locomotive
28
28
  end
29
29
  end
30
30
 
31
+ def setup_account_without_a_site
32
+ cannot :manage, :all
33
+
34
+ can :create, Site
35
+ end
36
+
31
37
  def setup_default_permissions!
32
38
  cannot :manage, :all
33
39
  end
@@ -78,14 +78,13 @@ module Locomotive
78
78
  # If an error occurs (invalid account, ...etc), this method raises an exception that has
79
79
  # to be caught somewhere.
80
80
  #
81
- # @param [ Site ] site The site where the authentication request is made
82
81
  # @param [ String ] email The email of the account
83
82
  # @param [ String ] password The password of the account
84
83
  # @param [ String ] api_key The API key of the site.
85
84
  #
86
85
  # @return [ String ] The API token
87
86
  #
88
- def self.create_api_token(site, email, password, api_key)
87
+ def self.create_api_token(email, password, api_key)
89
88
  if api_key.present?
90
89
  account = self.where(api_key: api_key).first
91
90
 
@@ -2,7 +2,7 @@ module Locomotive
2
2
  class AccountPresenter < BasePresenter
3
3
 
4
4
  ## properties ##
5
- properties :name, :email, :locale, :encrypted_password, :password_salt
5
+ properties :name, :email, :locale, :encrypted_password, :password_salt, :api_key
6
6
  property :admin, only_getter: true
7
7
 
8
8
  with_options only_setter: true do |presenter|
@@ -84,7 +84,6 @@ Feature: Sites
84
84
  And the JSON response at "1/memberships" should not have 0 entries
85
85
  And the JSON response at "2/memberships" should not have 0 entries
86
86
 
87
-
88
87
  Scenario: Creating new site as a Designer
89
88
  Given I have a "designer" API token
90
89
  When I do an API POST to sites.json with:
@@ -25,7 +25,7 @@ module Locomotive
25
25
  if source.is_a?(String) || source.is_a?(Hash) # simple string or theme asset
26
26
  source = source['url'] if source.is_a?(Hash)
27
27
 
28
- source.strip!
28
+ clean_source!(source)
29
29
 
30
30
  if source =~ /^http/
31
31
  file = self.app.fetch_url(source)
@@ -49,5 +49,15 @@ module Locomotive
49
49
  ::Dragonfly.app
50
50
  end
51
51
 
52
+ protected
53
+
54
+ def self.clean_source!(source)
55
+ # remove the leading / trailing whitespaces
56
+ source.strip!
57
+
58
+ # remove the query part (usually, timestamp) if local file
59
+ source.sub!(/(\?.*)$/, '') unless source =~ /^http/
60
+ end
61
+
52
62
  end
53
63
  end
@@ -67,11 +67,8 @@ module Locomotive
67
67
 
68
68
  # Inputs which define the ETag for this response
69
69
  etag_inputs = {
70
- 'page' => @page,
71
- 'params' => {
72
- 'page_path' => params[:page_path],
73
- 'locale' => params[:locale]
74
- }
70
+ 'page' => @page.cache_key,
71
+ 'locale' => params[:locale]
75
72
  }
76
73
 
77
74
  if @page.with_cache?
@@ -1,3 +1,3 @@
1
1
  module Locomotive #:nodoc
2
- VERSION = '2.5.0'
2
+ VERSION = '2.5.1'
3
3
  end
@@ -2,13 +2,14 @@ require 'spec_helper'
2
2
 
3
3
  describe Locomotive::Liquid::Filters::Resize do
4
4
  before :each do
5
- @site = FactoryGirl.create(:site)
6
- @theme_asset = FactoryGirl.create(:theme_asset, source: FixturedAsset.open('5k.png'), site: @site)
7
- @theme_asset_path = "/sites/#{@theme_asset.site_id}/theme/images/5k.png"
8
- @asset = FactoryGirl.create(:asset, source: FixturedAsset.open('5k.png'), site: @site)
9
- @asset_url = @asset.source.url
10
- @asset_path = "/sites/#{@asset.site_id}/assets/#{@asset.id}/5k.png"
11
- @context = Liquid::Context.new( { }, { 'asset_url' => @asset_url, 'theme_asset' => @theme_asset.to_liquid }, { site: @site })
5
+ @site = FactoryGirl.create(:site)
6
+ @theme_asset = FactoryGirl.create(:theme_asset, source: FixturedAsset.open('5k.png'), site: @site)
7
+ @theme_asset_path = "/sites/#{@theme_asset.site_id}/theme/images/5k.png"
8
+ @asset = FactoryGirl.create(:asset, source: FixturedAsset.open('5k.png'), site: @site)
9
+ @asset_url = @asset.source.url
10
+ @asset_url_with_ts = "#{@asset.source.url}?24e29997bcb00e97d8252cdd29d14e2d"
11
+ @asset_path = "/sites/#{@asset.site_id}/assets/#{@asset.id}/5k.png"
12
+ @context = Liquid::Context.new( { }, { 'asset_url' => @asset_url, 'asset_url_with_ts' => @asset_url_with_ts, 'theme_asset' => @theme_asset.to_liquid }, { site: @site })
12
13
  end
13
14
 
14
15
  describe '#resize' do
@@ -32,6 +33,16 @@ describe Locomotive::Liquid::Filters::Resize do
32
33
 
33
34
  end
34
35
 
36
+ context 'when an asset url with a timestamp is given' do
37
+
38
+ subject { Liquid::Template.parse('{{ asset_url_with_ts | resize: "40x30" }}').render(@context) }
39
+
40
+ it 'returns the location of the resized image' do
41
+ subject.should =~ /images\/dynamic\/.*\/5k.png/
42
+ end
43
+
44
+ end
45
+
35
46
  context 'when a theme asset is given' do
36
47
  before :each do
37
48
  @template = Liquid::Template.parse("{{ theme_asset | resize: '300x400' }}")
@@ -57,5 +68,6 @@ describe Locomotive::Liquid::Filters::Resize do
57
68
  end
58
69
 
59
70
  end
71
+
60
72
  end
61
73
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: locomotive_cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.0
4
+ version: 2.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Didier Lafforgue
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-28 00:00:00.000000000 Z
11
+ date: 2014-05-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -436,14 +436,14 @@ dependencies:
436
436
  requirements:
437
437
  - - "~>"
438
438
  - !ruby/object:Gem::Version
439
- version: 1.0.3
439
+ version: 1.0.4
440
440
  type: :runtime
441
441
  prerelease: false
442
442
  version_requirements: !ruby/object:Gem::Requirement
443
443
  requirements:
444
444
  - - "~>"
445
445
  - !ruby/object:Gem::Version
446
- version: 1.0.3
446
+ version: 1.0.4
447
447
  - !ruby/object:Gem::Dependency
448
448
  name: rack-cache
449
449
  requirement: !ruby/object:Gem::Requirement