Skip to content
This repository has been archived by the owner on Mar 29, 2019. It is now read-only.

#233 - configuration rewrite rewritten #36

8 changes: 4 additions & 4 deletions app/controllers/account_controller.rb
Expand Up @@ -129,7 +129,7 @@ def activate

def logout_user
if User.current.logged?
cookies.delete Redmine::Configuration['autologin_cookie_name']
cookies.delete ChiliProject.config['autologin_cookie_name']
Token.delete_all(["user_id = ? AND action = ?", User.current.id, 'autologin'])
self.logged_user = nil
end
Expand Down Expand Up @@ -214,11 +214,11 @@ def set_autologin_cookie(user)
cookie_options = {
:value => token.value,
:expires => 1.year.from_now,
:path => Redmine::Configuration['autologin_cookie_path'],
:secure => Redmine::Configuration['autologin_cookie_secure'],
:path => ChiliProject.config['autologin_cookie_path'],
:secure => ChiliProject.config['autologin_cookie_secure'],
:httponly => true
}
cookies[Redmine::Configuration['autologin_cookie_name']] = cookie_options
cookies[ChiliProject.config['autologin_cookie_name']] = cookie_options
end

# Onthefly creation failed, display the registration form to fill/fix attributes
Expand Down
4 changes: 2 additions & 2 deletions app/controllers/application_controller.rb
Expand Up @@ -66,9 +66,9 @@ def find_current_user
if session[:user_id]
# existing session
(User.active.find(session[:user_id]) rescue nil)
elsif cookies[Redmine::Configuration['autologin_cookie_name']] && Setting.autologin?
elsif cookies[ChiliProject.config['autologin_cookie_name']] && Setting.autologin?
# auto-login feature starts a new session
user = User.try_to_autologin(cookies[Redmine::Configuration['autologin_cookie_name']])
user = User.try_to_autologin(cookies[ChiliProject.config['autologin_cookie_name']])
session[:user_id] = user.id if user
user
elsif params[:format] == 'atom' && params[:key] && accept_key_auth_actions.include?(params[:action])
Expand Down
11 changes: 6 additions & 5 deletions app/models/attachment.rb
Expand Up @@ -42,9 +42,10 @@ class Attachment < ActiveRecord::Base
:joins => "LEFT JOIN #{Document.table_name} ON #{Attachment.table_name}.container_type='Document' AND #{Document.table_name}.id = #{Attachment.table_name}.container_id " +
"LEFT JOIN #{Project.table_name} ON #{Document.table_name}.project_id = #{Project.table_name}.id"}

cattr_accessor :storage_path
@@storage_path = Redmine::Configuration['attachments_storage_path'] || "#{RAILS_ROOT}/files"

def self.storage_path
ChiliProject.config['attachments_storage_path']
end

def validate
if self.filesize > Setting.attachment_max_size.to_i.kilobytes
errors.add(:base, :too_long, :count => Setting.attachment_max_size.to_i.kilobytes)
Expand Down Expand Up @@ -98,7 +99,7 @@ def after_destroy

# Returns file's location on disk
def diskfile
"#{@@storage_path}/#{self.disk_filename}"
"#{self.class.storage_path}/#{self.disk_filename}"
end

def increment_download
Expand Down Expand Up @@ -183,7 +184,7 @@ def self.disk_filename(filename)
# keep the extension if any
ascii << $1 if filename =~ %r{(\.[a-zA-Z0-9]+)$}
end
while File.exist?(File.join(@@storage_path, "#{timestamp}_#{ascii}"))
while File.exist?(File.join(self.storage_path, "#{timestamp}_#{ascii}"))
timestamp.succ!
end
"#{timestamp}_#{ascii}"
Expand Down
150 changes: 45 additions & 105 deletions config/configuration.yml.example
@@ -1,124 +1,60 @@
# = ChiliProject configuration file
#
# Each environment has it's own configuration options. If you are only
# running in production, only the production block needs to be configured.
# Environment specific configuration options override the default ones.
#
# Note that this file needs to be a valid YAML file.
#
# == Outgoing email settings (email_delivery setting)
#
# === Common configurations
#
# ==== Sendmail command
#
# production:
# email_delivery:
# delivery_method: :sendmail
#
# ==== Simple SMTP server at localhost
#
# production:
# email_delivery:
# delivery_method: :smtp
# smtp_settings:
# address: "localhost"
# port: 25
#
# ==== SMTP server at example.com using LOGIN authentication and checking HELO for foo.com
#
# production:
# email_delivery:
# delivery_method: :smtp
# smtp_settings:
# address: "example.com"
# port: 25
# authentication: :login
# domain: 'foo.com'
# user_name: 'myaccount'
# password: 'password'
#
# ==== SMTP server at example.com using PLAIN authentication
#
# production:
# email_delivery:
# delivery_method: :smtp
# smtp_settings:
# address: "example.com"
# port: 25
# authentication: :plain
# domain: 'example.com'
# user_name: 'myaccount'
# password: 'password'
#
# ==== SMTP server at using TLS (GMail)
#
# This requires some additional configuration. See the article at:
# http://redmineblog.com/articles/setup-redmine-to-send-email-using-gmail/
#
# production:
# email_delivery:
# delivery_method: :smtp
# smtp_settings:
# tls: true
# address: "smtp.gmail.com"
# port: 587
# domain: "smtp.gmail.com" # 'your.domain.com' for GoogleApps
# authentication: :plain
# user_name: "your_email@gmail.com"
# password: "your_password"
#
#
# === More configuration options
#############################################################################
# ChiliProject configuration file #
# #
# Each environment has it's own configuration options. If you are only #
# running in production, only the production block needs to be configured. #
# #
# Note that this file needs to be a valid YAML file. Leading indentation is #
# important. Please refer to http://en.wikipedia.org/wiki/YAML for a #
# description of the format. #
# #
#############################################################################

#############################################################################
## Global configuration options for all environments
#
# See the "Configuration options" at the following website for a list of the
# full options allowed:
# This section defines the basic settings for all environments. All these
# settings can be overridden for a specific environment.
#
# http://wiki.rubyonrails.org/rails/pages/HowToSendEmailsWithActionMailer
# See the bottom of the file for the actual environment sections

global: &global
# Outgoing emails configuration.
# See https://www.chiliproject.org/projects/chiliproject/wiki/Email_Delivery
#email_delivery:
# delivery_method: :smtp
# smtp_settings:
# address: smtp.example.net
# port: 25
# domain: example.net
# authentication: :login
# user_name: "chiliproject@example.net"
# password: "chiliproject"

# default configuration options for all environments
default:
# Outgoing emails configuration (see examples above)
email_delivery:
delivery_method: :smtp
smtp_settings:
address: smtp.example.net
port: 25
domain: example.net
authentication: :login
user_name: "chiliproject@example.net"
password: "chiliproject"

# Absolute path to the directory where attachments are stored.
# The default is the 'files' directory in your ChiliProject instance.
# Your ChiliProject instance needs to have write permission on this
# directory.
# Examples:
# attachments_storage_path: /var/chiliproject/files
# attachments_storage_path: D:/chiliproject/files
attachments_storage_path:

# Path to the directories where themes are stored.
# Can be an absolute path or one relative to your ChiliProject instance.
# You can configure multiple paths.
# The default is the 'public/themes' directory in your ChiliProject instance.
# Examples:
# themes_storage_paths: public/themes
# themes_storage_path: D:/chiliproject/themes
# themes_storage_paths:
# - public/themes
# - /opt/themes
# - D:/chiliproject/themes
themes_storage_path:

# Configuration of the autologin cookie.
# autologin_cookie_name: the name of the cookie (default: autologin)
# autologin_cookie_path: the cookie path (default: /)
# autologin_cookie_secure: true sets the cookie secure flag (default: false)
autologin_cookie_name:
autologin_cookie_path:
autologin_cookie_secure:


# Configuration of SCM executable command.
# Absolute path (e.g. /usr/local/bin/hg) or command name (e.g. hg.exe, bzr.exe)
# On Windows, *.cmd, *.bat (e.g. hg.cmd, bzr.bat) does not work.
Expand All @@ -129,22 +65,26 @@ default:
# scm_cvs_command: cvs # (default: cvs)
# scm_bazaar_command: bzr.exe # (default: bzr)
# scm_darcs_command: darcs-1.0.9-i386-linux # (default: darcs)
scm_subversion_command:
scm_mercurial_command:
scm_git_command:
scm_cvs_command:
scm_bazaar_command:
scm_darcs_command:

# specific configuration options for production environment
# that overrides the default ones

#############################################################################
# Specific configuration options for production environment

production:
# We just use the global configuration here
<<: *global

#############################################################################
# specific configuration options for development environment
# that overrides the default ones

development:
# We just use the global configuration here
<<: *global

#############################################################################
# Configuration for the test environment

test:
# We just use the global configuration here but override some values
<<: *global
email_delivery:
delivery_method: test
Expand Up @@ -2,4 +2,4 @@
# Adds fallback to default locale for untranslated strings
I18n::Backend::Simple.send(:include, I18n::Backend::Fallbacks)

require 'redmine'
require 'chili_project'
21 changes: 21 additions & 0 deletions lib/chili_project.rb
@@ -0,0 +1,21 @@
# ChiliProject is a project management system.
# Copyright (C) 2010-2011 The ChiliProject Team
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

require 'chili_project/configuration'

# include legacy API
require 'redmine'