lucy_cms 0.0.5 → 0.0.6
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/VERSION +1 -1
- data/app/controllers/cms_admin/base_controller.rb +5 -7
- data/app/controllers/cms_admin/sessions_controller.rb +1 -1
- data/app/controllers/cms_admin/sites_controller.rb +1 -0
- data/app/controllers/cms_admin/upload_dirs_controller.rb +7 -2
- data/app/controllers/cms_admin/users_controller.rb +12 -0
- data/app/models/cms_user.rb +5 -15
- data/app/views/cms_admin/upload_dirs/_file.html.erb +1 -1
- data/app/views/cms_admin/upload_dirs/show.html.erb +1 -1
- data/config/routes.rb +1 -1
- data/lib/LucyCMS/cms_tag.rb +2 -2
- data/lib/LucyCMS/configuration.rb +1 -1
- data/lib/LucyCMS/view_hooks.rb +1 -1
- data/lib/lucy_cms.rb +3 -3
- data/lucy_cms.gemspec +2 -3
- data/test/unit/view_methods_test.rb +1 -1
- metadata +3 -4
- data/app/views/cms_admin/upload_dirs/uploads_destroy.js.erb +0 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.6
|
@@ -3,11 +3,8 @@ class CmsAdmin::BaseController < ActionController::Base
|
|
3
3
|
protect_from_forgery
|
4
4
|
|
5
5
|
before_filter :fetch_cms_logged_in_user,
|
6
|
-
:load_admin_cms_site
|
7
|
-
|
8
|
-
unless CmsSite.count == 0 || CmsUser.find(:all, :conditions => {:admin => true, :disabled => false}).count == 0
|
9
|
-
before_filter :cms_login_required
|
10
|
-
end
|
6
|
+
:load_admin_cms_site,
|
7
|
+
:cms_login_required
|
11
8
|
layout 'cms_admin'
|
12
9
|
|
13
10
|
protected
|
@@ -16,13 +13,13 @@ protected
|
|
16
13
|
if CmsSite.count == 0
|
17
14
|
flash[:error] = 'To start you must setup your site'
|
18
15
|
redirect_to new_cms_admin_site_path
|
19
|
-
|
16
|
+
else
|
20
17
|
@cms_site = CmsSite.first
|
21
18
|
if @cms_site.version < LucyCms.config.version
|
22
19
|
@cms_site.version = LucyCms.config.version
|
23
20
|
@cms_site.save
|
24
21
|
end
|
25
|
-
|
22
|
+
end
|
26
23
|
end
|
27
24
|
|
28
25
|
def fetch_cms_logged_in_user
|
@@ -38,6 +35,7 @@ protected
|
|
38
35
|
|
39
36
|
def cms_login_required
|
40
37
|
return true if cms_logged_in?
|
38
|
+
return true if CmsSite.count == 0 || CmsUser.find(:all, :conditions => {:admin => true, :disabled => false}).count == 0
|
41
39
|
redirect_to new_cms_admin_session_path and return false
|
42
40
|
end
|
43
41
|
end
|
@@ -7,7 +7,7 @@ class CmsAdmin::SessionsController < CmsAdmin::BaseController
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def create
|
10
|
-
@cms_current_user = CmsUser.authenticate(params[:login], params[:password])
|
10
|
+
@cms_current_user = CmsUser.authenticate(params[:login], params[:password], @cms_site.authentication, @cms_site.ldap_hostname, @cms_site.ldap_base_DN, @cms_site.ldap_uid)
|
11
11
|
if @cms_current_user
|
12
12
|
session[:cms_user_id] = @cms_current_user.id
|
13
13
|
redirect_to cms_admin_pages_path
|
@@ -35,23 +35,28 @@ class CmsAdmin::UploadDirsController < CmsAdmin::BaseController
|
|
35
35
|
end
|
36
36
|
|
37
37
|
def uploads
|
38
|
+
tempfile = params[:file].tempfile.path
|
38
39
|
@cms_upload_dir = @cms_site.cms_upload_dirs.find(params[:id])
|
39
40
|
@cms_upload_check = @cms_upload_dir.cms_uploads.find_by_cms_upload_dir_id_and_file_file_name( params[:id], params[:file].original_filename)
|
40
41
|
unless @cms_upload_check.nil?
|
41
42
|
@cms_upload_check.destroy
|
42
43
|
end
|
43
44
|
@cms_upload = @cms_upload_dir.cms_uploads.create!(:file => params[:file], :cms_upload_dir_label => @cms_upload_dir.label, :cms_user_id => @cms_current_user.id)
|
45
|
+
if File::exists?(tempfile)
|
46
|
+
File::delete(tempfile)
|
47
|
+
end
|
44
48
|
render :partial => 'file', :object => @cms_upload
|
45
49
|
rescue ActiveRecord::RecordInvalid
|
46
50
|
render :nothing => true, :status => :bad_request
|
47
51
|
end
|
48
52
|
|
49
53
|
def uploads_destroy
|
50
|
-
@cms_upload = CmsUpload.find(
|
54
|
+
@cms_upload = CmsUpload.find(params[:id])
|
55
|
+
@cms_upload_dir = @cms_upload.cms_upload_dir
|
51
56
|
@cms_upload.destroy
|
57
|
+
redirect_to :action => :show, :id => @cms_upload_dir.id
|
52
58
|
end
|
53
59
|
|
54
|
-
|
55
60
|
def destroy
|
56
61
|
@cms_upload_dir = @cms_site.cms_upload_dirs.find(params[:id])
|
57
62
|
@cms_upload_dir.destroy
|
@@ -25,6 +25,12 @@ class CmsAdmin::UsersController < CmsAdmin::BaseController
|
|
25
25
|
render :action => 'new'
|
26
26
|
return
|
27
27
|
end
|
28
|
+
else
|
29
|
+
if @cms_user.password.nil? || @cms_user.password.empty?
|
30
|
+
flash[:error] = 'Password can not be blank'
|
31
|
+
render :action => 'new'
|
32
|
+
return
|
33
|
+
end
|
28
34
|
end
|
29
35
|
if CmsUser.find_by_admin_and_disabled(true,false).nil?
|
30
36
|
if @cms_user.admin == false || @cms_user.disabled == true
|
@@ -69,6 +75,12 @@ class CmsAdmin::UsersController < CmsAdmin::BaseController
|
|
69
75
|
render :action => 'edit'
|
70
76
|
return
|
71
77
|
end
|
78
|
+
else
|
79
|
+
if @cms_user.password.nil? || @cms_user.password.empty?
|
80
|
+
flash[:error] = 'Password can not be blank'
|
81
|
+
render :action => 'new'
|
82
|
+
return
|
83
|
+
end
|
72
84
|
end
|
73
85
|
if @cms_user.disabled == true && CmsUser.find(:all, :conditions => {:admin => true, :disabled => false}).count == 1 && CmsUser.find(:all, :conditions => {:admin => true, :disabled => false}).first.id == @cms_user.id
|
74
86
|
flash[:error] = "You can not disable the only Admin"
|
data/app/models/cms_user.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'net/ldap'
|
1
2
|
class CmsUser < ActiveRecord::Base
|
2
3
|
|
3
4
|
validates :login,
|
@@ -10,17 +11,9 @@ class CmsUser < ActiveRecord::Base
|
|
10
11
|
validates :last_name,
|
11
12
|
:presence => true
|
12
13
|
|
13
|
-
@cms_site = CmsSite.first
|
14
|
-
|
15
|
-
unless @cms_site.nil?
|
16
|
-
if @cms_site.authentication != 'LDAP'
|
17
14
|
attr_accessor :password_confirmation
|
18
15
|
validates_confirmation_of :password
|
19
16
|
|
20
|
-
validates :password,
|
21
|
-
:presence => true,
|
22
|
-
:on => :create
|
23
|
-
|
24
17
|
# 'password' is a virtual attribute
|
25
18
|
def password
|
26
19
|
@password
|
@@ -32,24 +25,22 @@ class CmsUser < ActiveRecord::Base
|
|
32
25
|
create_new_salt
|
33
26
|
self.hashed_password = CmsUser.encrypted_password(self.password, self.salt)
|
34
27
|
end
|
35
|
-
end
|
36
|
-
end
|
37
28
|
|
38
29
|
def full_name
|
39
30
|
[first_name, last_name].join(' ')
|
40
31
|
end
|
41
32
|
|
42
|
-
def self.authenticate(login, password)
|
33
|
+
def self.authenticate(login, password, authentication, ldap_hostname, ldap_base_DN, ldap_uid)
|
43
34
|
|
44
|
-
if
|
35
|
+
if authentication == 'LDAP'
|
45
36
|
username = login
|
46
37
|
|
47
38
|
if (password.empty?) then
|
48
39
|
return nil
|
49
40
|
end
|
50
41
|
|
51
|
-
ldap = Net::LDAP.new(:host =>
|
52
|
-
filter = Net::LDAP::Filter.eq(
|
42
|
+
ldap = Net::LDAP.new(:host => ldap_hostname, :base => ldap_base_DN)
|
43
|
+
filter = Net::LDAP::Filter.eq(ldap_uid, login)
|
53
44
|
ldap.search(:filter => filter) {|entry| login = entry.dn}
|
54
45
|
ldap.auth(login, password)
|
55
46
|
|
@@ -76,7 +67,6 @@ class CmsUser < ActiveRecord::Base
|
|
76
67
|
user
|
77
68
|
end
|
78
69
|
|
79
|
-
rescue Net::LDAP::LdapError
|
80
70
|
end
|
81
71
|
|
82
72
|
private
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<div class='item'>
|
3
3
|
<div class='icon'></div>
|
4
4
|
<div class='action_links'>
|
5
|
-
<%= link_to 'Delete', uploads_destroy_cms_admin_upload_dir_path(file), :method => :
|
5
|
+
<%= link_to 'Delete', uploads_destroy_cms_admin_upload_dir_path(file), :method => :post, :confirm => 'Are you sure?' %>
|
6
6
|
</div>
|
7
7
|
<div class='label'>
|
8
8
|
<%= link_to file.file_file_name, file.file.url, :target => '_blank', :class => 'filename' %>
|
@@ -11,7 +11,7 @@
|
|
11
11
|
<div class='item'>
|
12
12
|
<div class='icon'></div>
|
13
13
|
<div class='action_links'>
|
14
|
-
<%= link_to 'Delete', uploads_destroy_cms_admin_upload_dir_path(cms_upload), :method => :
|
14
|
+
<%= link_to 'Delete', uploads_destroy_cms_admin_upload_dir_path(cms_upload), :method => :post, :confirm => 'Are you sure?' %>
|
15
15
|
</div>
|
16
16
|
<div class='label'>
|
17
17
|
<%= link_to cms_upload.file_file_name, cms_upload.file.url, :target => '_blank', :class => 'filename' %>
|
data/config/routes.rb
CHANGED
data/lib/LucyCMS/cms_tag.rb
CHANGED
@@ -68,7 +68,7 @@ module CmsTag
|
|
68
68
|
# as a default.
|
69
69
|
def render
|
70
70
|
# cleaning content from possible irb stuff. Partial and Helper tags are OK.
|
71
|
-
if
|
71
|
+
if LucyCms.config.disable_irb && ![CmsTag::Partial, CmsTag::Helper].member?(self.class)
|
72
72
|
content.to_s.gsub('<%', '<%').gsub('%>', '%>')
|
73
73
|
else
|
74
74
|
content.to_s
|
@@ -116,4 +116,4 @@ private
|
|
116
116
|
def self.tag_classes
|
117
117
|
@@tag_classes ||= []
|
118
118
|
end
|
119
|
-
end
|
119
|
+
end
|
data/lib/LucyCMS/view_hooks.rb
CHANGED
@@ -16,7 +16,7 @@ module LucyCms::ViewHooks
|
|
16
16
|
|
17
17
|
# Will declare a partial that will be rendered for this hook
|
18
18
|
# Example:
|
19
|
-
#
|
19
|
+
# LucyCMS::ViewHooks.add(:navigation, 'shared/navigation')
|
20
20
|
def self.add(name, partial_path)
|
21
21
|
self.hooks[name.to_sym] ||= []
|
22
22
|
self.hooks[name.to_sym] << partial_path
|
data/lib/lucy_cms.rb
CHANGED
@@ -28,14 +28,14 @@ module LucyCms
|
|
28
28
|
|
29
29
|
# Modify CMS configuration
|
30
30
|
# Example:
|
31
|
-
#
|
32
|
-
# config.
|
31
|
+
# LucyCMS.configure do |config|
|
32
|
+
# config.config.cms_upload_directory = 'shared'
|
33
33
|
# end
|
34
34
|
def configure
|
35
35
|
yield configuration
|
36
36
|
end
|
37
37
|
|
38
|
-
# Accessor for
|
38
|
+
# Accessor for LucyCMS::Configuration
|
39
39
|
def configuration
|
40
40
|
@configuration ||= Configuration.new
|
41
41
|
end
|
data/lucy_cms.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{lucy_cms}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.6"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Lucy"]
|
12
|
-
s.date = %q{2011-03-
|
12
|
+
s.date = %q{2011-03-11}
|
13
13
|
s.description = %q{}
|
14
14
|
s.email = %q{lucy@lucysoft.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -69,7 +69,6 @@ Gem::Specification.new do |s|
|
|
69
69
|
"app/views/cms_admin/upload_dirs/index.html.erb",
|
70
70
|
"app/views/cms_admin/upload_dirs/new.html.erb",
|
71
71
|
"app/views/cms_admin/upload_dirs/show.html.erb",
|
72
|
-
"app/views/cms_admin/upload_dirs/uploads_destroy.js.erb",
|
73
72
|
"app/views/cms_admin/users/_form.html.erb",
|
74
73
|
"app/views/cms_admin/users/_index_branch.html.erb",
|
75
74
|
"app/views/cms_admin/users/change_password.html.erb",
|
@@ -2,7 +2,7 @@ require File.expand_path('../test_helper', File.dirname(__FILE__))
|
|
2
2
|
|
3
3
|
class ViewMethodsTest < ActiveSupport::TestCase
|
4
4
|
|
5
|
-
include
|
5
|
+
include LucyCms::ViewMethods
|
6
6
|
|
7
7
|
def test_cms_snippet_content
|
8
8
|
assert_equal 'default_snippet_content', cms_snippet_content('default')
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: lucy_cms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Lucy
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-03-
|
13
|
+
date: 2011-03-11 00:00:00 -06:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
@@ -141,7 +141,6 @@ files:
|
|
141
141
|
- app/views/cms_admin/upload_dirs/index.html.erb
|
142
142
|
- app/views/cms_admin/upload_dirs/new.html.erb
|
143
143
|
- app/views/cms_admin/upload_dirs/show.html.erb
|
144
|
-
- app/views/cms_admin/upload_dirs/uploads_destroy.js.erb
|
145
144
|
- app/views/cms_admin/users/_form.html.erb
|
146
145
|
- app/views/cms_admin/users/_index_branch.html.erb
|
147
146
|
- app/views/cms_admin/users/change_password.html.erb
|
@@ -347,7 +346,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
347
346
|
requirements:
|
348
347
|
- - ">="
|
349
348
|
- !ruby/object:Gem::Version
|
350
|
-
hash:
|
349
|
+
hash: 4497317104056704982
|
351
350
|
segments:
|
352
351
|
- 0
|
353
352
|
version: "0"
|