##// END OF EJS Templates
Merged r3050 from trunk....
Eric Davis -
r2938:ce41d4f9b04b
parent child
Show More
@@ -1,234 +1,240
1 1 # redMine - project management software
2 2 # Copyright (C) 2006-2007 Jean-Philippe Lang
3 3 #
4 4 # This program is free software; you can redistribute it and/or
5 5 # modify it under the terms of the GNU General Public License
6 6 # as published by the Free Software Foundation; either version 2
7 7 # of the License, or (at your option) any later version.
8 8 #
9 9 # This program is distributed in the hope that it will be useful,
10 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 12 # GNU General Public License for more details.
13 13 #
14 14 # You should have received a copy of the GNU General Public License
15 15 # along with this program; if not, write to the Free Software
16 16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 17
18 18 require 'uri'
19 19 require 'cgi'
20 20
21 21 class ApplicationController < ActionController::Base
22 22 layout 'base'
23 23
24 24 before_filter :user_setup, :check_if_login_required, :set_localization
25 25 filter_parameter_logging :password
26 26
27 27 include Redmine::MenuManager::MenuController
28 28 helper Redmine::MenuManager::MenuHelper
29 29
30 30 REDMINE_SUPPORTED_SCM.each do |scm|
31 31 require_dependency "repository/#{scm.underscore}"
32 32 end
33 33
34 34 def current_role
35 35 @current_role ||= User.current.role_for_project(@project)
36 36 end
37 37
38 38 def user_setup
39 39 # Check the settings cache for each request
40 40 Setting.check_cache
41 41 # Find the current user
42 42 User.current = find_current_user
43 43 end
44 44
45 45 # Returns the current user or nil if no user is logged in
46 46 def find_current_user
47 47 if session[:user_id]
48 48 # existing session
49 49 (User.active.find(session[:user_id]) rescue nil)
50 50 elsif cookies[:autologin] && Setting.autologin?
51 51 # auto-login feature
52 52 User.find_by_autologin_key(cookies[:autologin])
53 53 elsif params[:key] && accept_key_auth_actions.include?(params[:action])
54 54 # RSS key authentication
55 55 User.find_by_rss_key(params[:key])
56 56 end
57 57 end
58 58
59 59 # check if login is globally required to access the application
60 60 def check_if_login_required
61 61 # no check needed if user is already logged in
62 62 return true if User.current.logged?
63 63 require_login if Setting.login_required?
64 64 end
65 65
66 66 def set_localization
67 67 User.current.language = nil unless User.current.logged?
68 68 lang = begin
69 69 if !User.current.language.blank? && GLoc.valid_language?(User.current.language)
70 70 User.current.language
71 71 elsif request.env['HTTP_ACCEPT_LANGUAGE']
72 72 accept_lang = parse_qvalues(request.env['HTTP_ACCEPT_LANGUAGE']).first.downcase
73 73 if !accept_lang.blank? && (GLoc.valid_language?(accept_lang) || GLoc.valid_language?(accept_lang = accept_lang.split('-').first))
74 74 User.current.language = accept_lang
75 75 end
76 76 end
77 77 rescue
78 78 nil
79 79 end || Setting.default_language
80 80 set_language_if_valid(lang)
81 81 end
82 82
83 83 def require_login
84 84 if !User.current.logged?
85 redirect_to :controller => "account", :action => "login", :back_url => url_for(params)
85 # Extract only the basic url parameters on non-GET requests
86 if request.get?
87 url = url_for(params)
88 else
89 url = url_for(:controller => params[:controller], :action => params[:action], :id => params[:id], :project_id => params[:project_id])
90 end
91 redirect_to :controller => "account", :action => "login", :back_url => url
86 92 return false
87 93 end
88 94 true
89 95 end
90 96
91 97 def require_admin
92 98 return unless require_login
93 99 if !User.current.admin?
94 100 render_403
95 101 return false
96 102 end
97 103 true
98 104 end
99 105
100 106 def deny_access
101 107 User.current.logged? ? render_403 : require_login
102 108 end
103 109
104 110 # Authorize the user for the requested action
105 111 def authorize(ctrl = params[:controller], action = params[:action])
106 112 allowed = User.current.allowed_to?({:controller => ctrl, :action => action}, @project)
107 113 allowed ? true : deny_access
108 114 end
109 115
110 116 # make sure that the user is a member of the project (or admin) if project is private
111 117 # used as a before_filter for actions that do not require any particular permission on the project
112 118 def check_project_privacy
113 119 if @project && @project.active?
114 120 if @project.is_public? || User.current.member_of?(@project) || User.current.admin?
115 121 true
116 122 else
117 123 User.current.logged? ? render_403 : require_login
118 124 end
119 125 else
120 126 @project = nil
121 127 render_404
122 128 false
123 129 end
124 130 end
125 131
126 132 def redirect_back_or_default(default)
127 133 back_url = CGI.unescape(params[:back_url].to_s)
128 134 if !back_url.blank?
129 135 begin
130 136 uri = URI.parse(back_url)
131 137 # do not redirect user to another host or to the login or register page
132 138 if (uri.relative? || (uri.host == request.host)) && !uri.path.match(%r{/(login|account/register)})
133 139 redirect_to(back_url) and return
134 140 end
135 141 rescue URI::InvalidURIError
136 142 # redirect to default
137 143 end
138 144 end
139 145 redirect_to default
140 146 end
141 147
142 148 def render_403
143 149 @project = nil
144 150 render :template => "common/403", :layout => !request.xhr?, :status => 403
145 151 return false
146 152 end
147 153
148 154 def render_404
149 155 render :template => "common/404", :layout => !request.xhr?, :status => 404
150 156 return false
151 157 end
152 158
153 159 def render_error(msg)
154 160 flash.now[:error] = msg
155 161 render :nothing => true, :layout => !request.xhr?, :status => 500
156 162 end
157 163
158 164 def render_feed(items, options={})
159 165 @items = items || []
160 166 @items.sort! {|x,y| y.event_datetime <=> x.event_datetime }
161 167 @items = @items.slice(0, Setting.feeds_limit.to_i)
162 168 @title = options[:title] || Setting.app_title
163 169 render :template => "common/feed.atom.rxml", :layout => false, :content_type => 'application/atom+xml'
164 170 end
165 171
166 172 def self.accept_key_auth(*actions)
167 173 actions = actions.flatten.map(&:to_s)
168 174 write_inheritable_attribute('accept_key_auth_actions', actions)
169 175 end
170 176
171 177 def accept_key_auth_actions
172 178 self.class.read_inheritable_attribute('accept_key_auth_actions') || []
173 179 end
174 180
175 181 # TODO: move to model
176 182 def attach_files(obj, attachments)
177 183 attached = []
178 184 unsaved = []
179 185 if attachments && attachments.is_a?(Hash)
180 186 attachments.each_value do |attachment|
181 187 file = attachment['file']
182 188 next unless file && file.size > 0
183 189 a = Attachment.create(:container => obj,
184 190 :file => file,
185 191 :description => attachment['description'].to_s.strip,
186 192 :author => User.current)
187 193 a.new_record? ? (unsaved << a) : (attached << a)
188 194 end
189 195 if unsaved.any?
190 196 flash[:warning] = l(:warning_attachments_not_saved, unsaved.size)
191 197 end
192 198 end
193 199 attached
194 200 end
195 201
196 202 # Returns the number of objects that should be displayed
197 203 # on the paginated list
198 204 def per_page_option
199 205 per_page = nil
200 206 if params[:per_page] && Setting.per_page_options_array.include?(params[:per_page].to_s.to_i)
201 207 per_page = params[:per_page].to_s.to_i
202 208 session[:per_page] = per_page
203 209 elsif session[:per_page]
204 210 per_page = session[:per_page]
205 211 else
206 212 per_page = Setting.per_page_options_array.first || 25
207 213 end
208 214 per_page
209 215 end
210 216
211 217 # qvalues http header parser
212 218 # code taken from webrick
213 219 def parse_qvalues(value)
214 220 tmp = []
215 221 if value
216 222 parts = value.split(/,\s*/)
217 223 parts.each {|part|
218 224 if m = %r{^([^\s,]+?)(?:;\s*q=(\d+(?:\.\d+)?))?$}.match(part)
219 225 val = m[1]
220 226 q = (m[2] or 1).to_f
221 227 tmp.push([val, q])
222 228 end
223 229 }
224 230 tmp = tmp.sort_by{|val, q| -q}
225 231 tmp.collect!{|val, q| val}
226 232 end
227 233 return tmp
228 234 end
229 235
230 236 # Returns a string that can be used as filename value in Content-Disposition header
231 237 def filename_for_content_disposition(name)
232 238 request.env['HTTP_USER_AGENT'] =~ %r{MSIE} ? ERB::Util.url_encode(name) : name
233 239 end
234 240 end
@@ -1,946 +1,947
1 1 == Redmine changelog
2 2
3 3 Redmine - project management software
4 4 Copyright (C) 2006-2009 Jean-Philippe Lang
5 5 http://www.redmine.org/
6 6
7 7 == TDB v0.8.7
8 8
9 9 * Fixed: Hide paragraph terminator at the end of headings on html export
10 10 * Fixed: pre tags containing "<pre*"
11 11 * Fixed: First date of the date range not included in the time report with SQLite
12 12 * Fixed: Password field not styled correctly on alternative stylesheet
13 * Fixed: Error when sumbitting a POST request that requires a login
13 14
14 15 == 2009-11-04 v0.8.6
15 16
16 17 * Change links to closed issues to be a grey color
17 18 * Change subversion adapter to not cache authentication and run non interactively
18 19 * Fixed: Custom Values with a nil value cause HTTP error 500
19 20 * Fixed: Failure to convert HTML entities when editing an Issue reply
20 21 * Fixed: Error trying to show repository when there are no comments in a changeset
21 22 * Fixed: account/show/:user_id should not be accessible for other users not in your projects
22 23 * Fixed: XSS vulnerabilities
23 24 * Fixed: IssuesController#destroy should accept POST only
24 25 * Fixed: Inline images in wiki headings
25 26
26 27
27 28 == 2009-09-13 v0.8.5
28 29
29 30 * Incoming mail handler : Allow spaces between keywords and colon
30 31 * Do not require a non-word character after a comma in Redmine links
31 32 * Include issue hyperlinks in reminder emails
32 33 * Prevent nil error when retrieving svn version
33 34 * Various plugin hooks added
34 35 * Add plugins information to script/about
35 36 * Fixed: 500 Internal Server Error is raised if add an empty comment to the news
36 37 * Fixed: Atom links for wiki pages are not correct
37 38 * Fixed: Atom feeds leak email address
38 39 * Fixed: Case sensitivity in Issue filtering
39 40 * Fixed: When reading RSS feed, the inline-embedded images are not properly shown
40 41
41 42
42 43 == 2009-05-17 v0.8.4
43 44
44 45 * Allow textile mailto links
45 46 * Fixed: memory consumption when uploading file
46 47 * Fixed: Mercurial integration doesn't work if Redmine is installed in folder path containing space
47 48 * Fixed: an error is raised when no tab is available on project settings
48 49 * Fixed: insert image macro corrupts urls with excalamation marks
49 50 * Fixed: error on cross-project gantt PNG export
50 51 * Fixed: self and alternate links in atom feeds do not respect Atom specs
51 52 * Fixed: accept any svn tunnel scheme in repository URL
52 53 * Fixed: issues/show should accept user's rss key
53 54 * Fixed: consistency of custom fields display on the issue detail view
54 55 * Fixed: wiki comments length validation is missing
55 56 * Fixed: weak autologin token generation algorithm causes duplicate tokens
56 57
57 58
58 59 == 2009-04-05 v0.8.3
59 60
60 61 * Separate project field and subject in cross-project issue view
61 62 * Ability to set language for redmine:load_default_data task using REDMINE_LANG environment variable
62 63 * Rescue Redmine::DefaultData::DataAlreadyLoaded in redmine:load_default_data task
63 64 * CSS classes to highlight own and assigned issues
64 65 * Hide "New file" link on wiki pages from printing
65 66 * Flush buffer when asking for language in redmine:load_default_data task
66 67 * Minimum project identifier length set to 1
67 68 * Include headers so that emails don't trigger vacation auto-responders
68 69 * Fixed: Time entries csv export links for all projects are malformed
69 70 * Fixed: Files without Version aren't visible in the Activity page
70 71 * Fixed: Commit logs are centered in the repo browser
71 72 * Fixed: News summary field content is not searchable
72 73 * Fixed: Journal#save has a wrong signature
73 74 * Fixed: Email footer signature convention
74 75 * Fixed: Timelog report do not show time for non-versioned issues
75 76
76 77
77 78 == 2009-03-07 v0.8.2
78 79
79 80 * Send an email to the user when an administrator activates a registered user
80 81 * Strip keywords from received email body
81 82 * Footer updated to 2009
82 83 * Show RSS-link even when no issues is found
83 84 * One click filter action in activity view
84 85 * Clickable/linkable line #'s while browsing the repo or viewing a file
85 86 * Links to versions on files list
86 87 * Added request and controller objects to the hooks by default
87 88 * Fixed: exporting an issue with attachments to PDF raises an error
88 89 * Fixed: "too few arguments" error may occur on activerecord error translation
89 90 * Fixed: "Default columns Displayed on the Issues list" setting is not easy to read
90 91 * Fixed: visited links to closed tickets are not striked through with IE6
91 92 * Fixed: MailHandler#plain_text_body returns nil if there was nothing to strip
92 93 * Fixed: MailHandler raises an error when processing an email without From header
93 94
94 95
95 96 == 2009-02-15 v0.8.1
96 97
97 98 * Select watchers on new issue form
98 99 * Issue description is no longer a required field
99 100 * Files module: ability to add files without version
100 101 * Jump to the current tab when using the project quick-jump combo
101 102 * Display a warning if some attachments were not saved
102 103 * Import custom fields values from emails on issue creation
103 104 * Show view/annotate/download links on entry and annotate views
104 105 * Admin Info Screen: Display if plugin assets directory is writable
105 106 * Adds a 'Create and continue' button on the new issue form
106 107 * IMAP: add options to move received emails
107 108 * Do not show Category field when categories are not defined
108 109 * Lower the project identifier limit to a minimum of two characters
109 110 * Add "closed" html class to closed entries in issue list
110 111 * Fixed: broken redirect URL on login failure
111 112 * Fixed: Deleted files are shown when using Darcs
112 113 * Fixed: Darcs adapter works on Win32 only
113 114 * Fixed: syntax highlight doesn't appear in new ticket preview
114 115 * Fixed: email notification for changes I make still occurs when running Repository.fetch_changesets
115 116 * Fixed: no error is raised when entering invalid hours on the issue update form
116 117 * Fixed: Details time log report CSV export doesn't honour date format from settings
117 118 * Fixed: invalid css classes on issue details
118 119 * Fixed: Trac importer creates duplicate custom values
119 120 * Fixed: inline attached image should not match partial filename
120 121
121 122
122 123 == 2008-12-30 v0.8.0
123 124
124 125 * Setting added in order to limit the number of diff lines that should be displayed
125 126 * Makes logged-in username in topbar linking to
126 127 * Mail handler: strip tags when receiving a html-only email
127 128 * Mail handler: add watchers before sending notification
128 129 * Adds a css class (overdue) to overdue issues on issue lists and detail views
129 130 * Fixed: project activity truncated after viewing user's activity
130 131 * Fixed: email address entered for password recovery shouldn't be case-sensitive
131 132 * Fixed: default flag removed when editing a default enumeration
132 133 * Fixed: default category ignored when adding a document
133 134 * Fixed: error on repository user mapping when a repository username is blank
134 135 * Fixed: Firefox cuts off large diffs
135 136 * Fixed: CVS browser should not show dead revisions (deleted files)
136 137 * Fixed: escape double-quotes in image titles
137 138 * Fixed: escape textarea content when editing a issue note
138 139 * Fixed: JS error on context menu with IE
139 140 * Fixed: bold syntax around single character in series doesn't work
140 141 * Fixed several XSS vulnerabilities
141 142 * Fixed a SQL injection vulnerability
142 143
143 144
144 145 == 2008-12-07 v0.8.0-rc1
145 146
146 147 * Wiki page protection
147 148 * Wiki page hierarchy. Parent page can be assigned on the Rename screen
148 149 * Adds support for issue creation via email
149 150 * Adds support for free ticket filtering and custom queries on Gantt chart and calendar
150 151 * Cross-project search
151 152 * Ability to search a project and its subprojects
152 153 * Ability to search the projects the user belongs to
153 154 * Adds custom fields on time entries
154 155 * Adds boolean and list custom fields for time entries as criteria on time report
155 156 * Cross-project time reports
156 157 * Display latest user's activity on account/show view
157 158 * Show last connexion time on user's page
158 159 * Obfuscates email address on user's account page using javascript
159 160 * wiki TOC rendered as an unordered list
160 161 * Adds the ability to search for a user on the administration users list
161 162 * Adds the ability to search for a project name or identifier on the administration projects list
162 163 * Redirect user to the previous page after logging in
163 164 * Adds a permission 'view wiki edits' so that wiki history can be hidden to certain users
164 165 * Adds permissions for viewing the watcher list and adding new watchers on the issue detail view
165 166 * Adds permissions to let users edit and/or delete their messages
166 167 * Link to activity view when displaying dates
167 168 * Hide Redmine version in atom feeds and pdf properties
168 169 * Maps repository users to Redmine users. Users with same username or email are automatically mapped. Mapping can be manually adjusted in repository settings. Multiple usernames can be mapped to the same Redmine user.
169 170 * Sort users by their display names so that user dropdown lists are sorted alphabetically
170 171 * Adds estimated hours to issue filters
171 172 * Switch order of current and previous revisions in side-by-side diff
172 173 * Render the commit changes list as a tree
173 174 * Adds watch/unwatch functionality at forum topic level
174 175 * When moving an issue to another project, reassign it to the category with same name if any
175 176 * Adds child_pages macro for wiki pages
176 177 * Use GET instead of POST on roadmap (#718), gantt and calendar forms
177 178 * Search engine: display total results count and count by result type
178 179 * Email delivery configuration moved to an unversioned YAML file (config/email.yml, see the sample file)
179 180 * Adds icons on search results
180 181 * Adds 'Edit' link on account/show for admin users
181 182 * Adds Lock/Unlock/Activate link on user edit screen
182 183 * Adds user count in status drop down on admin user list
183 184 * Adds multi-levels blockquotes support by using > at the beginning of lines
184 185 * Adds a Reply link to each issue note
185 186 * Adds plain text only option for mail notifications
186 187 * Gravatar support for issue detail, user grid, and activity stream (disabled by default)
187 188 * Adds 'Delete wiki pages attachments' permission
188 189 * Show the most recent file when displaying an inline image
189 190 * Makes permission screens localized
190 191 * AuthSource list: display associated users count and disable 'Delete' buton if any
191 192 * Make the 'duplicates of' relation asymmetric
192 193 * Adds username to the password reminder email
193 194 * Adds links to forum messages using message#id syntax
194 195 * Allow same name for custom fields on different object types
195 196 * One-click bulk edition using the issue list context menu within the same project
196 197 * Adds support for commit logs reencoding to UTF-8 before insertion in the database. Source encoding of commit logs can be selected in Application settings -> Repositories.
197 198 * Adds checkboxes toggle links on permissions report
198 199 * Adds Trac-Like anchors on wiki headings
199 200 * Adds support for wiki links with anchor
200 201 * Adds category to the issue context menu
201 202 * Adds a workflow overview screen
202 203 * Appends the filename to the attachment url so that clients that ignore content-disposition http header get the real filename
203 204 * Dots allowed in custom field name
204 205 * Adds posts quoting functionality
205 206 * Adds an option to generate sequential project identifiers
206 207 * Adds mailto link on the user administration list
207 208 * Ability to remove enumerations (activities, priorities, document categories) that are in use. Associated objects can be reassigned to another value
208 209 * Gantt chart: display issues that don't have a due date if they are assigned to a version with a date
209 210 * Change projects homepage limit to 255 chars
210 211 * Improved on-the-fly account creation. If some attributes are missing (eg. not present in the LDAP) or are invalid, the registration form is displayed so that the user is able to fill or fix these attributes
211 212 * Adds "please select" to activity select box if no activity is set as default
212 213 * Do not silently ignore timelog validation failure on issue edit
213 214 * Adds a rake task to send reminder emails
214 215 * Allow empty cells in wiki tables
215 216 * Makes wiki text formatter pluggable
216 217 * Adds back textile acronyms support
217 218 * Remove pre tag attributes
218 219 * Plugin hooks
219 220 * Pluggable admin menu
220 221 * Plugins can provide activity content
221 222 * Moves plugin list to its own administration menu item
222 223 * Adds url and author_url plugin attributes
223 224 * Adds Plugin#requires_redmine method so that plugin compatibility can be checked against current Redmine version
224 225 * Adds atom feed on time entries details
225 226 * Adds project name to issues feed title
226 227 * Adds a css class on menu items in order to apply item specific styles (eg. icons)
227 228 * Adds a Redmine plugin generators
228 229 * Adds timelog link to the issue context menu
229 230 * Adds links to the user page on various views
230 231 * Turkish translation by Ismail Sezen
231 232 * Catalan translation
232 233 * Vietnamese translation
233 234 * Slovak translation
234 235 * Better naming of activity feed if only one kind of event is displayed
235 236 * Enable syntax highlight on issues, messages and news
236 237 * Add target version to the issue list context menu
237 238 * Hide 'Target version' filter if no version is defined
238 239 * Add filters on cross-project issue list for custom fields marked as 'For all projects'
239 240 * Turn ftp urls into links
240 241 * Hiding the View Differences button when a wiki page's history only has one version
241 242 * Messages on a Board can now be sorted by the number of replies
242 243 * Adds a class ('me') to events of the activity view created by current user
243 244 * Strip pre/code tags content from activity view events
244 245 * Display issue notes in the activity view
245 246 * Adds links to changesets atom feed on repository browser
246 247 * Track project and tracker changes in issue history
247 248 * Adds anchor to atom feed messages links
248 249 * Adds a key in lang files to set the decimal separator (point or comma) in csv exports
249 250 * Makes importer work with Trac 0.8.x
250 251 * Upgraded to Prototype 1.6.0.1
251 252 * File viewer for attached text files
252 253 * Menu mapper: add support for :before, :after and :last options to #push method and add #delete method
253 254 * Removed inconsistent revision numbers on diff view
254 255 * CVS: add support for modules names with spaces
255 256 * Log the user in after registration if account activation is not needed
256 257 * Mercurial adapter improvements
257 258 * Trac importer: read session_attribute table to find user's email and real name
258 259 * Ability to disable unused SCM adapters in application settings
259 260 * Adds Filesystem adapter
260 261 * Clear changesets and changes with raw sql when deleting a repository for performance
261 262 * Redmine.pm now uses the 'commit access' permission defined in Redmine
262 263 * Reposman can create any type of scm (--scm option)
263 264 * Reposman creates a repository if the 'repository' module is enabled at project level only
264 265 * Display svn properties in the browser, svn >= 1.5.0 only
265 266 * Reduces memory usage when importing large git repositories
266 267 * Wider SVG graphs in repository stats
267 268 * SubversionAdapter#entries performance improvement
268 269 * SCM browser: ability to download raw unified diffs
269 270 * More detailed error message in log when scm command fails
270 271 * Adds support for file viewing with Darcs 2.0+
271 272 * Check that git changeset is not in the database before creating it
272 273 * Unified diff viewer for attached files with .patch or .diff extension
273 274 * File size display with Bazaar repositories
274 275 * Git adapter: use commit time instead of author time
275 276 * Prettier url for changesets
276 277 * Makes changes link to entries on the revision view
277 278 * Adds a field on the repository view to browse at specific revision
278 279 * Adds new projects atom feed
279 280 * Added rake tasks to generate rcov code coverage reports
280 281 * Add Redcloth's :block_markdown_rule to allow horizontal rules in wiki
281 282 * Show the project hierarchy in the drop down list for new membership on user administration screen
282 283 * Split user edit screen into tabs
283 284 * Renames bundled RedCloth to RedCloth3 to avoid RedCloth 4 to be loaded instead
284 285 * Fixed: Roadmap crashes when a version has a due date > 2037
285 286 * Fixed: invalid effective date (eg. 99999-01-01) causes an error on version edition screen
286 287 * Fixed: login filter providing incorrect back_url for Redmine installed in sub-directory
287 288 * Fixed: logtime entry duplicated when edited from parent project
288 289 * Fixed: wrong digest for text files under Windows
289 290 * Fixed: associated revisions are displayed in wrong order on issue view
290 291 * Fixed: Git Adapter date parsing ignores timezone
291 292 * Fixed: Printing long roadmap doesn't split across pages
292 293 * Fixes custom fields display order at several places
293 294 * Fixed: urls containing @ are parsed as email adress by the wiki formatter
294 295 * Fixed date filters accuracy with SQLite
295 296 * Fixed: tokens not escaped in highlight_tokens regexp
296 297 * Fixed Bazaar shared repository browsing
297 298 * Fixes platform determination under JRuby
298 299 * Fixed: Estimated time in issue's journal should be rounded to two decimals
299 300 * Fixed: 'search titles only' box ignored after one search is done on titles only
300 301 * Fixed: non-ASCII subversion path can't be displayed
301 302 * Fixed: Inline images don't work if file name has upper case letters or if image is in BMP format
302 303 * Fixed: document listing shows on "my page" when viewing documents is disabled for the role
303 304 * Fixed: Latest news appear on the homepage for projects with the News module disabled
304 305 * Fixed: cross-project issue list should not show issues of projects for which the issue tracking module was disabled
305 306 * Fixed: the default status is lost when reordering issue statuses
306 307 * Fixes error with Postgresql and non-UTF8 commit logs
307 308 * Fixed: textile footnotes no longer work
308 309 * Fixed: http links containing parentheses fail to reder correctly
309 310 * Fixed: GitAdapter#get_rev should use current branch instead of hardwiring master
310 311
311 312
312 313 == 2008-07-06 v0.7.3
313 314
314 315 * Allow dot in firstnames and lastnames
315 316 * Add project name to cross-project Atom feeds
316 317 * Encoding set to utf8 in example database.yml
317 318 * HTML titles on forums related views
318 319 * Fixed: various XSS vulnerabilities
319 320 * Fixed: Entourage (and some old client) fails to correctly render notification styles
320 321 * Fixed: Fixed: timelog redirects inappropriately when :back_url is blank
321 322 * Fixed: wrong relative paths to images in wiki_syntax.html
322 323
323 324
324 325 == 2008-06-15 v0.7.2
325 326
326 327 * "New Project" link on Projects page
327 328 * Links to repository directories on the repo browser
328 329 * Move status to front in Activity View
329 330 * Remove edit step from Status context menu
330 331 * Fixed: No way to do textile horizontal rule
331 332 * Fixed: Repository: View differences doesn't work
332 333 * Fixed: attachement's name maybe invalid.
333 334 * Fixed: Error when creating a new issue
334 335 * Fixed: NoMethodError on @available_filters.has_key?
335 336 * Fixed: Check All / Uncheck All in Email Settings
336 337 * Fixed: "View differences" of one file at /repositories/revision/ fails
337 338 * Fixed: Column width in "my page"
338 339 * Fixed: private subprojects are listed on Issues view
339 340 * Fixed: Textile: bold, italics, underline, etc... not working after parentheses
340 341 * Fixed: Update issue form: comment field from log time end out of screen
341 342 * Fixed: Editing role: "issue can be assigned to this role" out of box
342 343 * Fixed: Unable use angular braces after include word
343 344 * Fixed: Using '*' as keyword for repository referencing keywords doesn't work
344 345 * Fixed: Subversion repository "View differences" on each file rise ERROR
345 346 * Fixed: View differences for individual file of a changeset fails if the repository URL doesn't point to the repository root
346 347 * Fixed: It is possible to lock out the last admin account
347 348 * Fixed: Wikis are viewable for anonymous users on public projects, despite not granting access
348 349 * Fixed: Issue number display clipped on 'my issues'
349 350 * Fixed: Roadmap version list links not carrying state
350 351 * Fixed: Log Time fieldset in IssueController#edit doesn't set default Activity as default
351 352 * Fixed: git's "get_rev" API should use repo's current branch instead of hardwiring "master"
352 353 * Fixed: browser's language subcodes ignored
353 354 * Fixed: Error on project selection with numeric (only) identifier.
354 355 * Fixed: Link to PDF doesn't work after creating new issue
355 356 * Fixed: "Replies" should not be shown on forum threads that are locked
356 357 * Fixed: SVN errors lead to svn username/password being displayed to end users (security issue)
357 358 * Fixed: http links containing hashes don't display correct
358 359 * Fixed: Allow ampersands in Enumeration names
359 360 * Fixed: Atom link on saved query does not include query_id
360 361 * Fixed: Logtime info lost when there's an error updating an issue
361 362 * Fixed: TOC does not parse colorization markups
362 363 * Fixed: CVS: add support for modules names with spaces
363 364 * Fixed: Bad rendering on projects/add
364 365 * Fixed: exception when viewing differences on cvs
365 366 * Fixed: export issue to pdf will messup when use Chinese language
366 367 * Fixed: Redmine::Scm::Adapters::GitAdapter#get_rev ignored GIT_BIN constant
367 368 * Fixed: Adding non-ASCII new issue type in the New Issue page have encoding error using IE
368 369 * Fixed: Importing from trac : some wiki links are messed
369 370 * Fixed: Incorrect weekend definition in Hebrew calendar locale
370 371 * Fixed: Atom feeds don't provide author section for repository revisions
371 372 * Fixed: In Activity views, changesets titles can be multiline while they should not
372 373 * Fixed: Ignore unreadable subversion directories (read disabled using authz)
373 374 * Fixed: lib/SVG/Graph/Graph.rb can't externalize stylesheets
374 375 * Fixed: Close statement handler in Redmine.pm
375 376
376 377
377 378 == 2008-05-04 v0.7.1
378 379
379 380 * Thai translation added (Gampol Thitinilnithi)
380 381 * Translations updates
381 382 * Escape HTML comment tags
382 383 * Prevent "can't convert nil into String" error when :sort_order param is not present
383 384 * Fixed: Updating tickets add a time log with zero hours
384 385 * Fixed: private subprojects names are revealed on the project overview
385 386 * Fixed: Search for target version of "none" fails with postgres 8.3
386 387 * Fixed: Home, Logout, Login links shouldn't be absolute links
387 388 * Fixed: 'Latest projects' box on the welcome screen should be hidden if there are no projects
388 389 * Fixed: error when using upcase language name in coderay
389 390 * Fixed: error on Trac import when :due attribute is nil
390 391
391 392
392 393 == 2008-04-28 v0.7.0
393 394
394 395 * Forces Redmine to use rails 2.0.2 gem when vendor/rails is not present
395 396 * Queries can be marked as 'For all projects'. Such queries will be available on all projects and on the global issue list.
396 397 * Add predefined date ranges to the time report
397 398 * Time report can be done at issue level
398 399 * Various timelog report enhancements
399 400 * Accept the following formats for "hours" field: 1h, 1 h, 1 hour, 2 hours, 30m, 30min, 1h30, 1h30m, 1:30
400 401 * Display the context menu above and/or to the left of the click if needed
401 402 * Make the admin project files list sortable
402 403 * Mercurial: display working directory files sizes unless browsing a specific revision
403 404 * Preserve status filter and page number when using lock/unlock/activate links on the users list
404 405 * Redmine.pm support for LDAP authentication
405 406 * Better error message and AR errors in log for failed LDAP on-the-fly user creation
406 407 * Redirected user to where he is coming from after logging hours
407 408 * Warn user that subprojects are also deleted when deleting a project
408 409 * Include subprojects versions on calendar and gantt
409 410 * Notify project members when a message is posted if they want to receive notifications
410 411 * Fixed: Feed content limit setting has no effect
411 412 * Fixed: Priorities not ordered when displayed as a filter in issue list
412 413 * Fixed: can not display attached images inline in message replies
413 414 * Fixed: Boards are not deleted when project is deleted
414 415 * Fixed: trying to preview a new issue raises an exception with postgresql
415 416 * Fixed: single file 'View difference' links do not work because of duplicate slashes in url
416 417 * Fixed: inline image not displayed when including a wiki page
417 418 * Fixed: CVS duplicate key violation
418 419 * Fixed: ActiveRecord::StaleObjectError exception on closing a set of circular duplicate issues
419 420 * Fixed: custom field filters behaviour
420 421 * Fixed: Postgresql 8.3 compatibility
421 422 * Fixed: Links to repository directories don't work
422 423
423 424
424 425 == 2008-03-29 v0.7.0-rc1
425 426
426 427 * Overall activity view and feed added, link is available on the project list
427 428 * Git VCS support
428 429 * Rails 2.0 sessions cookie store compatibility
429 430 * Use project identifiers in urls instead of ids
430 431 * Default configuration data can now be loaded from the administration screen
431 432 * Administration settings screen split to tabs (email notifications options moved to 'Settings')
432 433 * Project description is now unlimited and optional
433 434 * Wiki annotate view
434 435 * Escape HTML tag in textile content
435 436 * Add Redmine links to documents, versions, attachments and repository files
436 437 * New setting to specify how many objects should be displayed on paginated lists. There are 2 ways to select a set of issues on the issue list:
437 438 * by using checkbox and/or the little pencil that will select/unselect all issues
438 439 * by clicking on the rows (but not on the links), Ctrl and Shift keys can be used to select multiple issues
439 440 * Context menu disabled on links so that the default context menu of the browser is displayed when right-clicking on a link (click anywhere else on the row to display the context menu)
440 441 * User display format is now configurable in administration settings
441 442 * Issue list now supports bulk edit/move/delete (for a set of issues that belong to the same project)
442 443 * Merged 'change status', 'edit issue' and 'add note' actions:
443 444 * Users with 'edit issues' permission can now update any property including custom fields when adding a note or changing the status
444 445 * 'Change issue status' permission removed. To change an issue status, a user just needs to have either 'Edit' or 'Add note' permissions and some workflow transitions allowed
445 446 * Details by assignees on issue summary view
446 447 * 'New issue' link in the main menu (accesskey 7). The drop-down lists to add an issue on the project overview and the issue list are removed
447 448 * Change status select box default to current status
448 449 * Preview for issue notes, news and messages
449 450 * Optional description for attachments
450 451 * 'Fixed version' label changed to 'Target version'
451 452 * Let the user choose when deleting issues with reported hours to:
452 453 * delete the hours
453 454 * assign the hours to the project
454 455 * reassign the hours to another issue
455 456 * Date range filter and pagination on time entries detail view
456 457 * Propagate time tracking to the parent project
457 458 * Switch added on the project activity view to include subprojects
458 459 * Display total estimated and spent hours on the version detail view
459 460 * Weekly time tracking block for 'My page'
460 461 * Permissions to edit time entries
461 462 * Include subprojects on the issue list, calendar, gantt and timelog by default (can be turned off is administration settings)
462 463 * Roadmap enhancements (separate related issues from wiki contents, leading h1 in version wiki pages is hidden, smaller wiki headings)
463 464 * Make versions with same date sorted by name
464 465 * Allow issue list to be sorted by target version
465 466 * Related changesets messages displayed on the issue details view
466 467 * Create a journal and send an email when an issue is closed by commit
467 468 * Add 'Author' to the available columns for the issue list
468 469 * More appropriate default sort order on sortable columns
469 470 * Add issue subject to the time entries view and issue subject, description and tracker to the csv export
470 471 * Permissions to edit issue notes
471 472 * Display date/time instead of date on files list
472 473 * Do not show Roadmap menu item if the project doesn't define any versions
473 474 * Allow longer version names (60 chars)
474 475 * Ability to copy an existing workflow when creating a new role
475 476 * Display custom fields in two columns on the issue form
476 477 * Added 'estimated time' in the csv export of the issue list
477 478 * Display the last 30 days on the activity view rather than the current month (number of days can be configured in the application settings)
478 479 * Setting for whether new projects should be public by default
479 480 * User preference to choose how comments/replies are displayed: in chronological or reverse chronological order
480 481 * Added default value for custom fields
481 482 * Added tabindex property on wiki toolbar buttons (to easily move from field to field using the tab key)
482 483 * Redirect to issue page after creating a new issue
483 484 * Wiki toolbar improvements (mainly for Firefox)
484 485 * Display wiki syntax quick ref link on all wiki textareas
485 486 * Display links to Atom feeds
486 487 * Breadcrumb nav for the forums
487 488 * Show replies when choosing to display messages in the activity
488 489 * Added 'include' macro to include another wiki page
489 490 * RedmineWikiFormatting page available as a static HTML file locally
490 491 * Wrap diff content
491 492 * Strip out email address from authors in repository screens
492 493 * Highlight the current item of the main menu
493 494 * Added simple syntax highlighters for php and java languages
494 495 * Do not show empty diffs
495 496 * Show explicit error message when the scm command failed (eg. when svn binary is not available)
496 497 * Lithuanian translation added (Sergej Jegorov)
497 498 * Ukrainan translation added (Natalia Konovka & Mykhaylo Sorochan)
498 499 * Danish translation added (Mads Vestergaard)
499 500 * Added i18n support to the jstoolbar and various settings screen
500 501 * RedCloth's glyphs no longer user
501 502 * New icons for the wiki toolbar (from http://www.famfamfam.com/lab/icons/silk/)
502 503 * The following menus can now be extended by plugins: top_menu, account_menu, application_menu
503 504 * Added a simple rake task to fetch changesets from the repositories: rake redmine:fetch_changesets
504 505 * Remove hardcoded "Redmine" strings in account related emails and use application title instead
505 506 * Mantis importer preserve bug ids
506 507 * Trac importer: Trac guide wiki pages skipped
507 508 * Trac importer: wiki attachments migration added
508 509 * Trac importer: support database schema for Trac migration
509 510 * Trac importer: support CamelCase links
510 511 * Removes the Redmine version from the footer (can be viewed on admin -> info)
511 512 * Rescue and display an error message when trying to delete a role that is in use
512 513 * Add various 'X-Redmine' headers to email notifications: X-Redmine-Host, X-Redmine-Site, X-Redmine-Project, X-Redmine-Issue-Id, -Author, -Assignee, X-Redmine-Topic-Id
513 514 * Add "--encoding utf8" option to the Mercurial "hg log" command in order to get utf8 encoded commit logs
514 515 * Fixed: Gantt and calendar not properly refreshed (fragment caching removed)
515 516 * Fixed: Textile image with style attribute cause internal server error
516 517 * Fixed: wiki TOC not rendered properly when used in an issue or document description
517 518 * Fixed: 'has already been taken' error message on username and email fields if left empty
518 519 * Fixed: non-ascii attachement filename with IE
519 520 * Fixed: wrong url for wiki syntax pop-up when Redmine urls are prefixed
520 521 * Fixed: search for all words doesn't work
521 522 * Fixed: Do not show sticky and locked checkboxes when replying to a message
522 523 * Fixed: Mantis importer: do not duplicate Mantis username in firstname and lastname if realname is blank
523 524 * Fixed: Date custom fields not displayed as specified in application settings
524 525 * Fixed: titles not escaped in the activity view
525 526 * Fixed: issue queries can not use custom fields marked as 'for all projects' in a project context
526 527 * Fixed: on calendar, gantt and in the tracker filter on the issue list, only active trackers of the project (and its sub projects) should be available
527 528 * Fixed: locked users should not receive email notifications
528 529 * Fixed: custom field selection is not saved when unchecking them all on project settings
529 530 * Fixed: can not lock a topic when creating it
530 531 * Fixed: Incorrect filtering for unset values when using 'is not' filter
531 532 * Fixed: PostgreSQL issues_seq_id not updated when using Trac importer
532 533 * Fixed: ajax pagination does not scroll up
533 534 * Fixed: error when uploading a file with no content-type specified by the browser
534 535 * Fixed: wiki and changeset links not displayed when previewing issue description or notes
535 536 * Fixed: 'LdapError: no bind result' error when authenticating
536 537 * Fixed: 'LdapError: invalid binding information' when no username/password are set on the LDAP account
537 538 * Fixed: CVS repository doesn't work if port is used in the url
538 539 * Fixed: Email notifications: host name is missing in generated links
539 540 * Fixed: Email notifications: referenced changesets, wiki pages, attachments... are not turned into links
540 541 * Fixed: Do not clear issue relations when moving an issue to another project if cross-project issue relations are allowed
541 542 * Fixed: "undefined method 'textilizable'" error on email notification when running Repository#fetch_changesets from the console
542 543 * Fixed: Do not send an email with no recipient, cc or bcc
543 544 * Fixed: fetch_changesets fails on commit comments that close 2 duplicates issues.
544 545 * Fixed: Mercurial browsing under unix-like os and for directory depth > 2
545 546 * Fixed: Wiki links with pipe can not be used in wiki tables
546 547 * Fixed: migrate_from_trac doesn't import timestamps of wiki and tickets
547 548 * Fixed: when bulk editing, setting "Assigned to" to "nobody" causes an sql error with Postgresql
548 549
549 550
550 551 == 2008-03-12 v0.6.4
551 552
552 553 * Fixed: private projects name are displayed on account/show even if the current user doesn't have access to these private projects
553 554 * Fixed: potential LDAP authentication security flaw
554 555 * Fixed: context submenus on the issue list don't show up with IE6.
555 556 * Fixed: Themes are not applied with Rails 2.0
556 557 * Fixed: crash when fetching Mercurial changesets if changeset[:files] is nil
557 558 * Fixed: Mercurial repository browsing
558 559 * Fixed: undefined local variable or method 'log' in CvsAdapter when a cvs command fails
559 560 * Fixed: not null constraints not removed with Postgresql
560 561 * Doctype set to transitional
561 562
562 563
563 564 == 2007-12-18 v0.6.3
564 565
565 566 * Fixed: upload doesn't work in 'Files' section
566 567
567 568
568 569 == 2007-12-16 v0.6.2
569 570
570 571 * Search engine: issue custom fields can now be searched
571 572 * News comments are now textilized
572 573 * Updated Japanese translation (Satoru Kurashiki)
573 574 * Updated Chinese translation (Shortie Lo)
574 575 * Fixed Rails 2.0 compatibility bugs:
575 576 * Unable to create a wiki
576 577 * Gantt and calendar error
577 578 * Trac importer error (readonly? is defined by ActiveRecord)
578 579 * Fixed: 'assigned to me' filter broken
579 580 * Fixed: crash when validation fails on issue edition with no custom fields
580 581 * Fixed: reposman "can't find group" error
581 582 * Fixed: 'LDAP account password is too long' error when leaving the field empty on creation
582 583 * Fixed: empty lines when displaying repository files with Windows style eol
583 584 * Fixed: missing body closing tag in repository annotate and entry views
584 585
585 586
586 587 == 2007-12-10 v0.6.1
587 588
588 589 * Rails 2.0 compatibility
589 590 * Custom fields can now be displayed as columns on the issue list
590 591 * Added version details view (accessible from the roadmap)
591 592 * Roadmap: more accurate completion percentage calculation (done ratio of open issues is now taken into account)
592 593 * Added per-project tracker selection. Trackers can be selected on project settings
593 594 * Anonymous users can now be allowed to create, edit, comment issues, comment news and post messages in the forums
594 595 * Forums: messages can now be edited/deleted (explicit permissions need to be given)
595 596 * Forums: topics can be locked so that no reply can be added
596 597 * Forums: topics can be marked as sticky so that they always appear at the top of the list
597 598 * Forums: attachments can now be added to replies
598 599 * Added time zone support
599 600 * Added a setting to choose the account activation strategy (available in application settings)
600 601 * Added 'Classic' theme (inspired from the v0.51 design)
601 602 * Added an alternate theme which provides issue list colorization based on issues priority
602 603 * Added Bazaar SCM adapter
603 604 * Added Annotate/Blame view in the repository browser (except for Darcs SCM)
604 605 * Diff style (inline or side by side) automatically saved as a user preference
605 606 * Added issues status changes on the activity view (by Cyril Mougel)
606 607 * Added forums topics on the activity view (disabled by default)
607 608 * Added an option on 'My account' for users who don't want to be notified of changes that they make
608 609 * Trac importer now supports mysql and postgresql databases
609 610 * Trac importer improvements (by Mat Trudel)
610 611 * 'fixed version' field can now be displayed on the issue list
611 612 * Added a couple of new formats for the 'date format' setting
612 613 * Added Traditional Chinese translation (by Shortie Lo)
613 614 * Added Russian translation (iGor kMeta)
614 615 * Project name format limitation removed (name can now contain any character)
615 616 * Project identifier maximum length changed from 12 to 20
616 617 * Changed the maximum length of LDAP account to 255 characters
617 618 * Removed the 12 characters limit on passwords
618 619 * Added wiki macros support
619 620 * Performance improvement on workflow setup screen
620 621 * More detailed html title on several views
621 622 * Custom fields can now be reordered
622 623 * Search engine: search can be restricted to an exact phrase by using quotation marks
623 624 * Added custom fields marked as 'For all projects' to the csv export of the cross project issue list
624 625 * Email notifications are now sent as Blind carbon copy by default
625 626 * Fixed: all members (including non active) should be deleted when deleting a project
626 627 * Fixed: Error on wiki syntax link (accessible from wiki/edit)
627 628 * Fixed: 'quick jump to a revision' form on the revisions list
628 629 * Fixed: error on admin/info if there's more than 1 plugin installed
629 630 * Fixed: svn or ldap password can be found in clear text in the html source in editing mode
630 631 * Fixed: 'Assigned to' drop down list is not sorted
631 632 * Fixed: 'View all issues' link doesn't work on issues/show
632 633 * Fixed: error on account/register when validation fails
633 634 * Fixed: Error when displaying the issue list if a float custom field is marked as 'used as filter'
634 635 * Fixed: Mercurial adapter breaks on missing :files entry in changeset hash (James Britt)
635 636 * Fixed: Wrong feed URLs on the home page
636 637 * Fixed: Update of time entry fails when the issue has been moved to an other project
637 638 * Fixed: Error when moving an issue without changing its tracker (Postgresql)
638 639 * Fixed: Changes not recorded when using :pserver string (CVS adapter)
639 640 * Fixed: admin should be able to move issues to any project
640 641 * Fixed: adding an attachment is not possible when changing the status of an issue
641 642 * Fixed: No mime-types in documents/files downloading
642 643 * Fixed: error when sorting the messages if there's only one board for the project
643 644 * Fixed: 'me' doesn't appear in the drop down filters on a project issue list.
644 645
645 646 == 2007-11-04 v0.6.0
646 647
647 648 * Permission model refactoring.
648 649 * Permissions: there are now 2 builtin roles that can be used to specify permissions given to other users than members of projects
649 650 * Permissions: some permissions (eg. browse the repository) can be removed for certain roles
650 651 * Permissions: modules (eg. issue tracking, news, documents...) can be enabled/disabled at project level
651 652 * Added Mantis and Trac importers
652 653 * New application layout
653 654 * Added "Bulk edit" functionality on the issue list
654 655 * More flexible mail notifications settings at user level
655 656 * Added AJAX based context menu on the project issue list that provide shortcuts for editing, re-assigning, changing the status or the priority, moving or deleting an issue
656 657 * Added the hability to copy an issue. It can be done from the "issue/show" view or from the context menu on the issue list
657 658 * Added the ability to customize issue list columns (at application level or for each saved query)
658 659 * Overdue versions (date reached and open issues > 0) are now always displayed on the roadmap
659 660 * Added the ability to rename wiki pages (specific permission required)
660 661 * Search engines now supports pagination. Results are sorted in reverse chronological order
661 662 * Added "Estimated hours" attribute on issues
662 663 * A category with assigned issue can now be deleted. 2 options are proposed: remove assignments or reassign issues to another category
663 664 * Forum notifications are now also sent to the authors of the thread, even if they donοΏ½t watch the board
664 665 * Added an application setting to specify the application protocol (http or https) used to generate urls in emails
665 666 * Gantt chart: now starts at the current month by default
666 667 * Gantt chart: month count and zoom factor are automatically saved as user preferences
667 668 * Wiki links can now refer to other project wikis
668 669 * Added wiki index by date
669 670 * Added preview on add/edit issue form
670 671 * Emails footer can now be customized from the admin interface (Admin -> Email notifications)
671 672 * Default encodings for repository files can now be set in application settings (used to convert files content and diff to UTF-8 so that theyοΏ½re properly displayed)
672 673 * Calendar: first day of week can now be set in lang files
673 674 * Automatic closing of duplicate issues
674 675 * Added a cross-project issue list
675 676 * AJAXified the SCM browser (tree view)
676 677 * Pretty URL for the repository browser (Cyril Mougel)
677 678 * Search engine: added a checkbox to search titles only
678 679 * Added "% done" in the filter list
679 680 * Enumerations: values can now be reordered and a default value can be specified (eg. default issue priority)
680 681 * Added some accesskeys
681 682 * Added "Float" as a custom field format
682 683 * Added basic Theme support
683 684 * Added the ability to set the οΏ½done ratioοΏ½ of issues fixed by commit (Nikolay Solakov)
684 685 * Added custom fields in issue related mail notifications
685 686 * Email notifications are now sent in plain text and html
686 687 * Gantt chart can now be exported to a graphic file (png). This functionality is only available if RMagick is installed.
687 688 * Added syntax highlightment for repository files and wiki
688 689 * Improved automatic Redmine links
689 690 * Added automatic table of content support on wiki pages
690 691 * Added radio buttons on the documents list to sort documents by category, date, title or author
691 692 * Added basic plugin support, with a sample plugin
692 693 * Added a link to add a new category when creating or editing an issue
693 694 * Added a "Assignable" boolean on the Role model. If unchecked, issues can not be assigned to users having this role.
694 695 * Added an option to be able to relate issues in different projects
695 696 * Added the ability to move issues (to another project) without changing their trackers.
696 697 * Atom feeds added on project activity, news and changesets
697 698 * Added the ability to reset its own RSS access key
698 699 * Main project list now displays root projects with their subprojects
699 700 * Added anchor links to issue notes
700 701 * Added reposman Ruby version. This script can now register created repositories in Redmine (Nicolas Chuche)
701 702 * Issue notes are now included in search
702 703 * Added email sending test functionality
703 704 * Added LDAPS support for LDAP authentication
704 705 * Removed hard-coded URLs in mail templates
705 706 * Subprojects are now grouped by projects in the navigation drop-down menu
706 707 * Added a new value for date filters: this week
707 708 * Added cache for application settings
708 709 * Added Polish translation (Tomasz Gawryl)
709 710 * Added Czech translation (Jan Kadlecek)
710 711 * Added Romanian translation (Csongor Bartus)
711 712 * Added Hebrew translation (Bob Builder)
712 713 * Added Serbian translation (Dragan Matic)
713 714 * Added Korean translation (Choi Jong Yoon)
714 715 * Fixed: the link to delete issue relations is displayed even if the user is not authorized to delete relations
715 716 * Performance improvement on calendar and gantt
716 717 * Fixed: wiki preview doesnοΏ½t work on long entries
717 718 * Fixed: queries with multiple custom fields return no result
718 719 * Fixed: Can not authenticate user against LDAP if its DN contains non-ascii characters
719 720 * Fixed: URL with ~ broken in wiki formatting
720 721 * Fixed: some quotation marks are rendered as strange characters in pdf
721 722
722 723
723 724 == 2007-07-15 v0.5.1
724 725
725 726 * per project forums added
726 727 * added the ability to archive projects
727 728 * added οΏ½WatchοΏ½ functionality on issues. It allows users to receive notifications about issue changes
728 729 * custom fields for issues can now be used as filters on issue list
729 730 * added per user custom queries
730 731 * commit messages are now scanned for referenced or fixed issue IDs (keywords defined in Admin -> Settings)
731 732 * projects list now shows the list of public projects and private projects for which the user is a member
732 733 * versions can now be created with no date
733 734 * added issue count details for versions on Reports view
734 735 * added time report, by member/activity/tracker/version and year/month/week for the selected period
735 736 * each category can now be associated to a user, so that new issues in that category are automatically assigned to that user
736 737 * added autologin feature (disabled by default)
737 738 * optimistic locking added for wiki edits
738 739 * added wiki diff
739 740 * added the ability to destroy wiki pages (requires permission)
740 741 * a wiki page can now be attached to each version, and displayed on the roadmap
741 742 * attachments can now be added to wiki pages (original patch by Pavol Murin) and displayed online
742 743 * added an option to see all versions in the roadmap view (including completed ones)
743 744 * added basic issue relations
744 745 * added the ability to log time when changing an issue status
745 746 * account information can now be sent to the user when creating an account
746 747 * author and assignee of an issue always receive notifications (even if they turned of mail notifications)
747 748 * added a quick search form in page header
748 749 * added 'me' value for 'assigned to' and 'author' query filters
749 750 * added a link on revision screen to see the entire diff for the revision
750 751 * added last commit message for each entry in repository browser
751 752 * added the ability to view a file diff with free to/from revision selection.
752 753 * text files can now be viewed online when browsing the repository
753 754 * added basic support for other SCM: CVS (Ralph Vater), Mercurial and Darcs
754 755 * added fragment caching for svn diffs
755 756 * added fragment caching for calendar and gantt views
756 757 * login field automatically focused on login form
757 758 * subproject name displayed on issue list, calendar and gantt
758 759 * added an option to choose the date format: language based or ISO 8601
759 760 * added a simple mail handler. It lets users add notes to an existing issue by replying to the initial notification email.
760 761 * a 403 error page is now displayed (instead of a blank page) when trying to access a protected page
761 762 * added portuguese translation (Joao Carlos Clementoni)
762 763 * added partial online help japanese translation (Ken Date)
763 764 * added bulgarian translation (Nikolay Solakov)
764 765 * added dutch translation (Linda van den Brink)
765 766 * added swedish translation (Thomas Habets)
766 767 * italian translation update (Alessio Spadaro)
767 768 * japanese translation update (Satoru Kurashiki)
768 769 * fixed: error on history atom feed when thereοΏ½s no notes on an issue change
769 770 * fixed: error in journalizing an issue with longtext custom fields (Postgresql)
770 771 * fixed: creation of Oracle schema
771 772 * fixed: last day of the month not included in project activity
772 773 * fixed: files with an apostrophe in their names can't be accessed in SVN repository
773 774 * fixed: performance issue on RepositoriesController#revisions when a changeset has a great number of changes (eg. 100,000)
774 775 * fixed: open/closed issue counts are always 0 on reports view (postgresql)
775 776 * fixed: date query filters (wrong results and sql error with postgresql)
776 777 * fixed: confidentiality issue on account/show (private project names displayed to anyone)
777 778 * fixed: Long text custom fields displayed without line breaks
778 779 * fixed: Error when editing the wokflow after deleting a status
779 780 * fixed: SVN commit dates are now stored as local time
780 781
781 782
782 783 == 2007-04-11 v0.5.0
783 784
784 785 * added per project Wiki
785 786 * added rss/atom feeds at project level (custom queries can be used as feeds)
786 787 * added search engine (search in issues, news, commits, wiki pages, documents)
787 788 * simple time tracking functionality added
788 789 * added version due dates on calendar and gantt
789 790 * added subprojects issue count on project Reports page
790 791 * added the ability to copy an existing workflow when creating a new tracker
791 792 * added the ability to include subprojects on calendar and gantt
792 793 * added the ability to select trackers to display on calendar and gantt (Jeffrey Jones)
793 794 * added side by side svn diff view (Cyril Mougel)
794 795 * added back subproject filter on issue list
795 796 * added permissions report in admin area
796 797 * added a status filter on users list
797 798 * support for password-protected SVN repositories
798 799 * SVN commits are now stored in the database
799 800 * added simple svn statistics SVG graphs
800 801 * progress bars for roadmap versions (Nick Read)
801 802 * issue history now shows file uploads and deletions
802 803 * #id patterns are turned into links to issues in descriptions and commit messages
803 804 * japanese translation added (Satoru Kurashiki)
804 805 * chinese simplified translation added (Andy Wu)
805 806 * italian translation added (Alessio Spadaro)
806 807 * added scripts to manage SVN repositories creation and user access control using ssh+svn (Nicolas Chuche)
807 808 * better calendar rendering time
808 809 * fixed migration scripts to work with mysql 5 running in strict mode
809 810 * fixed: error when clicking "add" with no block selected on my/page_layout
810 811 * fixed: hard coded links in navigation bar
811 812 * fixed: table_name pre/suffix support
812 813
813 814
814 815 == 2007-02-18 v0.4.2
815 816
816 817 * Rails 1.2 is now required
817 818 * settings are now stored in the database and editable through the application in: Admin -> Settings (config_custom.rb is no longer used)
818 819 * added project roadmap view
819 820 * mail notifications added when a document, a file or an attachment is added
820 821 * tooltips added on Gantt chart and calender to view the details of the issues
821 822 * ability to set the sort order for roles, trackers, issue statuses
822 823 * added missing fields to csv export: priority, start date, due date, done ratio
823 824 * added total number of issues per tracker on project overview
824 825 * all icons replaced (new icons are based on GPL icon set: "KDE Crystal Diamond 2.5" -by paolino- and "kNeu! Alpha v0.1" -by Pablo Fabregat-)
825 826 * added back "fixed version" field on issue screen and in filters
826 827 * project settings screen split in 4 tabs
827 828 * custom fields screen split in 3 tabs (one for each kind of custom field)
828 829 * multiple issues pdf export now rendered as a table
829 830 * added a button on users/list to manually activate an account
830 831 * added a setting option to disable "password lost" functionality
831 832 * added a setting option to set max number of issues in csv/pdf exports
832 833 * fixed: subprojects count is always 0 on projects list
833 834 * fixed: locked users are proposed when adding a member to a project
834 835 * fixed: setting an issue status as default status leads to an sql error with SQLite
835 836 * fixed: unable to delete an issue status even if it's not used yet
836 837 * fixed: filters ignored when exporting a predefined query to csv/pdf
837 838 * fixed: crash when french "issue_edit" email notification is sent
838 839 * fixed: hide mail preference not saved (my/account)
839 840 * fixed: crash when a new user try to edit its "my page" layout
840 841
841 842
842 843 == 2007-01-03 v0.4.1
843 844
844 845 * fixed: emails have no recipient when one of the project members has notifications disabled
845 846
846 847
847 848 == 2007-01-02 v0.4.0
848 849
849 850 * simple SVN browser added (just needs svn binaries in PATH)
850 851 * comments can now be added on news
851 852 * "my page" is now customizable
852 853 * more powerfull and savable filters for issues lists
853 854 * improved issues change history
854 855 * new functionality: move an issue to another project or tracker
855 856 * new functionality: add a note to an issue
856 857 * new report: project activity
857 858 * "start date" and "% done" fields added on issues
858 859 * project calendar added
859 860 * gantt chart added (exportable to pdf)
860 861 * single/multiple issues pdf export added
861 862 * issues reports improvements
862 863 * multiple file upload for issues, documents and files
863 864 * option to set maximum size of uploaded files
864 865 * textile formating of issue and news descritions (RedCloth required)
865 866 * integration of DotClear jstoolbar for textile formatting
866 867 * calendar date picker for date fields (LGPL DHTML Calendar http://sourceforge.net/projects/jscalendar)
867 868 * new filter in issues list: Author
868 869 * ajaxified paginators
869 870 * news rss feed added
870 871 * option to set number of results per page on issues list
871 872 * localized csv separator (comma/semicolon)
872 873 * csv output encoded to ISO-8859-1
873 874 * user custom field displayed on account/show
874 875 * default configuration improved (default roles, trackers, status, permissions and workflows)
875 876 * language for default configuration data can now be chosen when running 'load_default_data' task
876 877 * javascript added on custom field form to show/hide fields according to the format of custom field
877 878 * fixed: custom fields not in csv exports
878 879 * fixed: project settings now displayed according to user's permissions
879 880 * fixed: application error when no version is selected on projects/add_file
880 881 * fixed: public actions not authorized for members of non public projects
881 882 * fixed: non public projects were shown on welcome screen even if current user is not a member
882 883
883 884
884 885 == 2006-10-08 v0.3.0
885 886
886 887 * user authentication against multiple LDAP (optional)
887 888 * token based "lost password" functionality
888 889 * user self-registration functionality (optional)
889 890 * custom fields now available for issues, users and projects
890 891 * new custom field format "text" (displayed as a textarea field)
891 892 * project & administration drop down menus in navigation bar for quicker access
892 893 * text formatting is preserved for long text fields (issues, projects and news descriptions)
893 894 * urls and emails are turned into clickable links in long text fields
894 895 * "due date" field added on issues
895 896 * tracker selection filter added on change log
896 897 * Localization plugin replaced with GLoc 1.1.0 (iconv required)
897 898 * error messages internationalization
898 899 * german translation added (thanks to Karim Trott)
899 900 * data locking for issues to prevent update conflicts (using ActiveRecord builtin optimistic locking)
900 901 * new filter in issues list: "Fixed version"
901 902 * active filters are displayed with colored background on issues list
902 903 * custom configuration is now defined in config/config_custom.rb
903 904 * user object no more stored in session (only user_id)
904 905 * news summary field is no longer required
905 906 * tables and forms redesign
906 907 * Fixed: boolean custom field not working
907 908 * Fixed: error messages for custom fields are not displayed
908 909 * Fixed: invalid custom fields should have a red border
909 910 * Fixed: custom fields values are not validated on issue update
910 911 * Fixed: unable to choose an empty value for 'List' custom fields
911 912 * Fixed: no issue categories sorting
912 913 * Fixed: incorrect versions sorting
913 914
914 915
915 916 == 2006-07-12 - v0.2.2
916 917
917 918 * Fixed: bug in "issues list"
918 919
919 920
920 921 == 2006-07-09 - v0.2.1
921 922
922 923 * new databases supported: Oracle, PostgreSQL, SQL Server
923 924 * projects/subprojects hierarchy (1 level of subprojects only)
924 925 * environment information display in admin/info
925 926 * more filter options in issues list (rev6)
926 927 * default language based on browser settings (Accept-Language HTTP header)
927 928 * issues list exportable to CSV (rev6)
928 929 * simple_format and auto_link on long text fields
929 930 * more data validations
930 931 * Fixed: error when all mail notifications are unchecked in admin/mail_options
931 932 * Fixed: all project news are displayed on project summary
932 933 * Fixed: Can't change user password in users/edit
933 934 * Fixed: Error on tables creation with PostgreSQL (rev5)
934 935 * Fixed: SQL error in "issue reports" view with PostgreSQL (rev5)
935 936
936 937
937 938 == 2006-06-25 - v0.1.0
938 939
939 940 * multiple users/multiple projects
940 941 * role based access control
941 942 * issue tracking system
942 943 * fully customizable workflow
943 944 * documents/files repository
944 945 * email notifications on issue creation and update
945 946 * multilanguage support (except for error messages):english, french, spanish
946 947 * online manual in french (unfinished)
@@ -1,66 +1,72
1 1 # redMine - project management software
2 2 # Copyright (C) 2006 Jean-Philippe Lang
3 3 #
4 4 # This program is free software; you can redistribute it and/or
5 5 # modify it under the terms of the GNU General Public License
6 6 # as published by the Free Software Foundation; either version 2
7 7 # of the License, or (at your option) any later version.
8 8 #
9 9 # This program is distributed in the hope that it will be useful,
10 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 12 # GNU General Public License for more details.
13 13 #
14 14 # You should have received a copy of the GNU General Public License
15 15 # along with this program; if not, write to the Free Software
16 16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 17
18 18 require "#{File.dirname(__FILE__)}/../test_helper"
19 19
20 20 class AdminTest < ActionController::IntegrationTest
21 21 fixtures :users
22 22
23 23 def test_add_user
24 24 log_user("admin", "admin")
25 25 get "/users/add"
26 26 assert_response :success
27 27 assert_template "users/add"
28 28 post "/users/add", :user => { :login => "psmith", :firstname => "Paul", :lastname => "Smith", :mail => "psmith@somenet.foo", :language => "en" }, :password => "psmith09", :password_confirmation => "psmith09"
29 29 assert_redirected_to "users/list"
30 30
31 31 user = User.find_by_login("psmith")
32 32 assert_kind_of User, user
33 33 logged_user = User.try_to_login("psmith", "psmith09")
34 34 assert_kind_of User, logged_user
35 35 assert_equal "Paul", logged_user.firstname
36 36
37 37 post "users/edit", :id => user.id, :user => { :status => User::STATUS_LOCKED }
38 38 assert_redirected_to "users/list"
39 39 locked_user = User.try_to_login("psmith", "psmith09")
40 40 assert_equal nil, locked_user
41 41 end
42 42
43 43 def test_add_project
44 44 log_user("admin", "admin")
45 45 get "projects/add"
46 46 assert_response :success
47 47 assert_template "projects/add"
48 48 post "projects/add", :project => { :name => "blog",
49 49 :description => "weblog",
50 50 :identifier => "blog",
51 51 :is_public => 1,
52 52 :custom_field_values => { '3' => 'Beta' }
53 53 }
54 54 assert_redirected_to "admin/projects"
55 55 assert_equal 'Successful creation.', flash[:notice]
56 56
57 57 project = Project.find_by_name("blog")
58 58 assert_kind_of Project, project
59 59 assert_equal "weblog", project.description
60 60 assert_equal true, project.is_public?
61 61
62 62 get "admin/projects"
63 63 assert_response :success
64 64 assert_template "admin/projects"
65 65 end
66
67 def test_add_a_user_as_an_anonymous_user_should_fail
68 post '/users/add', :user => { :login => 'psmith', :firstname => 'Paul'}, :password => "psmith09", :password_confirmation => "psmith09"
69 assert_response :redirect
70 assert_redirected_to "/login?back_url=http%3A%2F%2Fwww.example.com%2Fusers%2Fadd"
71 end
66 72 end
General Comments 0
You need to be logged in to leave comments. Login now