lucy_cms 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- 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"
|