Patch #13460 » functional_renaming_rss_to_atom.diff
| app/controllers/application_controller.rb | ||
|---|---|---|
| 100 | 100 |
user = autologin_user |
| 101 | 101 |
elsif params[:format] == 'atom' && params[:key] && request.get? && accept_rss_auth? |
| 102 | 102 |
# RSS key authentication does not start a session |
| 103 |
user = User.find_by_rss_key(params[:key])
|
|
| 103 |
user = User.find_by_atom_key(params[:key])
|
|
| 104 | 104 |
end |
| 105 | 105 |
end |
| 106 | 106 |
if user.nil? && Setting.rest_api_enabled? && accept_api_auth? |
| app/controllers/my_controller.rb | ||
|---|---|---|
| 105 | 105 |
end |
| 106 | 106 | |
| 107 | 107 |
# Create a new feeds key |
| 108 |
def reset_rss_key
|
|
| 108 |
def reset_atom_key
|
|
| 109 | 109 |
if request.post? |
| 110 |
if User.current.rss_token
|
|
| 111 |
User.current.rss_token.destroy
|
|
| 110 |
if User.current.atom_token
|
|
| 111 |
User.current.atom_token.destroy
|
|
| 112 | 112 |
User.current.reload |
| 113 | 113 |
end |
| 114 |
User.current.rss_key
|
|
| 114 |
User.current.atom_key
|
|
| 115 | 115 |
flash[:notice] = l(:notice_feeds_access_key_reseted) |
| 116 | 116 |
end |
| 117 | 117 |
redirect_to my_account_path |
| 118 | 118 |
end |
| 119 |
|
|
| 120 |
# TODO: remove in Redmine 3.0 |
|
| 121 |
def reset_rss_key |
|
| 122 |
ActiveSupport::Deprecation.warn "My#reset_rss_key is deprecated and will be removed in Redmine 3.0. Please use #reset_atom_key instead." |
|
| 123 |
reset_atom_key |
|
| 124 |
end |
|
| 125 | ||
| 119 | 126 | |
| 120 | 127 |
# Create a new API key |
| 121 | 128 |
def reset_api_key |
| app/controllers/projects_controller.rb | ||
|---|---|---|
| 158 | 158 |
@total_hours = TimeEntry.visible.sum(:hours, :include => :project, :conditions => cond).to_f |
| 159 | 159 |
end |
| 160 | 160 | |
| 161 |
@key = User.current.rss_key
|
|
| 161 |
@key = User.current.atom_key
|
|
| 162 | 162 | |
| 163 | 163 |
respond_to do |format| |
| 164 | 164 |
format.html |
| app/models/user.rb | ||
|---|---|---|
| 72 | 72 |
:after_remove => Proc.new {|user, group| group.user_removed(user)}
|
| 73 | 73 |
has_many :changesets, :dependent => :nullify |
| 74 | 74 |
has_one :preference, :dependent => :destroy, :class_name => 'UserPreference' |
| 75 |
has_one :rss_token, :class_name => 'Token', :conditions => "action='feeds'"
|
|
| 75 |
has_one :atom_token, :class_name => 'Token', :conditions => "action='feeds'"
|
|
| 76 | 76 |
has_one :api_token, :class_name => 'Token', :conditions => "action='api'" |
| 77 | 77 |
belongs_to :auth_source |
| 78 | 78 | |
| ... | ... | |
| 303 | 303 |
self.pref[:comments_sorting] == 'desc' |
| 304 | 304 |
end |
| 305 | 305 | |
| 306 |
# Return user's RSS key (a 40 chars long string), used to access feeds
|
|
| 307 |
def rss_key
|
|
| 308 |
if rss_token.nil?
|
|
| 309 |
create_rss_token(:action => 'feeds')
|
|
| 306 |
# Return user's ATOM key (a 40 chars long string), used to access feeds
|
|
| 307 |
def atom_key
|
|
| 308 |
if atom_token.nil?
|
|
| 309 |
create_atom_token(:action => 'feeds')
|
|
| 310 | 310 |
end |
| 311 |
rss_token.value |
|
| 311 |
atom_token.value |
|
| 312 |
end |
|
| 313 |
|
|
| 314 |
# TODO: remove in Redmine 3.0 |
|
| 315 |
def rss_key |
|
| 316 |
ActiveSupport::Deprecation.warn "User.rss_key is deprecated and will be removed in Redmine 3.0. Please use User.atom_key instead." |
|
| 317 |
atom_key |
|
| 312 | 318 |
end |
| 313 | 319 | |
| 314 | 320 |
# Return user's API key (a 40 chars long string), used to access the API |
| ... | ... | |
| 361 | 367 |
end |
| 362 | 368 |
end |
| 363 | 369 | |
| 364 |
def self.find_by_rss_key(key)
|
|
| 370 |
def self.find_by_atom_key(key)
|
|
| 365 | 371 |
Token.find_active_user('feeds', key)
|
| 366 | 372 |
end |
| 367 | 373 | |
| 374 |
# TODO: remove in Redmine 3.0 |
|
| 375 |
def self.find_by_rss_key(key) |
|
| 376 |
ActiveSupport::Deprecation.warn "User.find_by_rss_key is deprecated and will be removed in Redmine 3.0. Please use User.find_by_atom_key instead." |
|
| 377 |
self.find_by_atom_key(key) |
|
| 378 |
end |
|
| 379 | ||
| 368 | 380 |
def self.find_by_api_key(key) |
| 369 | 381 |
Token.find_active_user('api', key)
|
| 370 | 382 |
end |
| ... | ... | |
| 698 | 710 |
def name(*args); I18n.t(:label_user_anonymous) end |
| 699 | 711 |
def mail; nil end |
| 700 | 712 |
def time_zone; nil end |
| 701 |
def rss_key; nil end
|
|
| 713 |
def atom_key; nil end
|
|
| 702 | 714 | |
| 703 | 715 |
def pref |
| 704 | 716 |
UserPreference.new(:user => self) |
| app/views/activities/index.html.erb | ||
|---|---|---|
| 33 | 33 |
</div> |
| 34 | 34 |
|
| 35 | 35 |
<% other_formats_links do |f| %> |
| 36 |
<%= f.link_to 'Atom', :url => params.merge(:from => nil, :key => User.current.rss_key) %>
|
|
| 36 |
<%= f.link_to 'Atom', :url => params.merge(:from => nil, :key => User.current.atom_key) %>
|
|
| 37 | 37 |
<% end %> |
| 38 | 38 | |
| 39 | 39 |
<% content_for :header_tags do %> |
| 40 |
<%= auto_discovery_link_tag(:atom, params.merge(:format => 'atom', :from => nil, :key => User.current.rss_key)) %>
|
|
| 40 |
<%= auto_discovery_link_tag(:atom, params.merge(:format => 'atom', :from => nil, :key => User.current.atom_key)) %>
|
|
| 41 | 41 |
<% end %> |
| 42 | 42 | |
| 43 | 43 |
<% content_for :sidebar do %> |
| app/views/boards/index.html.erb | ||
|---|---|---|
| 28 | 28 |
</table> |
| 29 | 29 | |
| 30 | 30 |
<% other_formats_links do |f| %> |
| 31 |
<%= f.link_to 'Atom', :url => {:controller => 'activities', :action => 'index', :id => @project, :show_messages => 1, :key => User.current.rss_key} %>
|
|
| 31 |
<%= f.link_to 'Atom', :url => {:controller => 'activities', :action => 'index', :id => @project, :show_messages => 1, :key => User.current.atom_key} %>
|
|
| 32 | 32 |
<% end %> |
| 33 | 33 | |
| 34 | 34 |
<% content_for :header_tags do %> |
| 35 |
<%= auto_discovery_link_tag(:atom, {:controller => 'activities', :action => 'index', :id => @project, :format => 'atom', :show_messages => 1, :key => User.current.rss_key}) %>
|
|
| 35 |
<%= auto_discovery_link_tag(:atom, {:controller => 'activities', :action => 'index', :id => @project, :format => 'atom', :show_messages => 1, :key => User.current.atom_key}) %>
|
|
| 36 | 36 |
<% end %> |
| 37 | 37 | |
| 38 | 38 |
<% html_title l(:label_board_plural) %> |
| app/views/boards/show.html.erb | ||
|---|---|---|
| 56 | 56 |
<% end %> |
| 57 | 57 | |
| 58 | 58 |
<% other_formats_links do |f| %> |
| 59 |
<%= f.link_to 'Atom', :url => {:key => User.current.rss_key} %>
|
|
| 59 |
<%= f.link_to 'Atom', :url => {:key => User.current.atom_key} %>
|
|
| 60 | 60 |
<% end %> |
| 61 | 61 | |
| 62 | 62 |
<% html_title @board.name %> |
| 63 | 63 | |
| 64 | 64 |
<% content_for :header_tags do %> |
| 65 |
<%= auto_discovery_link_tag(:atom, {:format => 'atom', :key => User.current.rss_key}, :title => "#{@project}: #{@board}") %>
|
|
| 65 |
<%= auto_discovery_link_tag(:atom, {:format => 'atom', :key => User.current.atom_key}, :title => "#{@project}: #{@board}") %>
|
|
| 66 | 66 |
<% end %> |
| app/views/issues/index.html.erb | ||
|---|---|---|
| 64 | 64 |
<% end %> |
| 65 | 65 | |
| 66 | 66 |
<% other_formats_links do |f| %> |
| 67 |
<%= f.link_to 'Atom', :url => params.merge(:key => User.current.rss_key) %>
|
|
| 67 |
<%= f.link_to 'Atom', :url => params.merge(:key => User.current.atom_key) %>
|
|
| 68 | 68 |
<%= f.link_to 'CSV', :url => params, :onclick => "showModal('csv-export-options', '330px'); return false;" %>
|
| 69 | 69 |
<%= f.link_to 'PDF', :url => params %> |
| 70 | 70 |
<% end %> |
| ... | ... | |
| 96 | 96 |
<% content_for :header_tags do %> |
| 97 | 97 |
<%= auto_discovery_link_tag(:atom, |
| 98 | 98 |
{:query_id => @query, :format => 'atom',
|
| 99 |
:page => nil, :key => User.current.rss_key},
|
|
| 99 |
:page => nil, :key => User.current.atom_key},
|
|
| 100 | 100 |
:title => l(:label_issue_plural)) %> |
| 101 | 101 |
<%= auto_discovery_link_tag(:atom, |
| 102 | 102 |
{:controller => 'journals', :action => 'index',
|
| 103 | 103 |
:query_id => @query, :format => 'atom', |
| 104 |
:page => nil, :key => User.current.rss_key},
|
|
| 104 |
:page => nil, :key => User.current.atom_key},
|
|
| 105 | 105 |
:title => l(:label_changes_details)) %> |
| 106 | 106 |
<% end %> |
| 107 | 107 | |
| app/views/issues/show.html.erb | ||
|---|---|---|
| 134 | 134 |
<% end %> |
| 135 | 135 | |
| 136 | 136 |
<% other_formats_links do |f| %> |
| 137 |
<%= f.link_to 'Atom', :url => {:key => User.current.rss_key} %>
|
|
| 137 |
<%= f.link_to 'Atom', :url => {:key => User.current.atom_key} %>
|
|
| 138 | 138 |
<%= f.link_to 'PDF' %> |
| 139 | 139 |
<% end %> |
| 140 | 140 | |
| ... | ... | |
| 152 | 152 |
<% end %> |
| 153 | 153 | |
| 154 | 154 |
<% content_for :header_tags do %> |
| 155 |
<%= auto_discovery_link_tag(:atom, {:format => 'atom', :key => User.current.rss_key}, :title => "#{@issue.project} - #{@issue.tracker} ##{@issue.id}: #{@issue.subject}") %>
|
|
| 155 |
<%= auto_discovery_link_tag(:atom, {:format => 'atom', :key => User.current.atom_key}, :title => "#{@issue.project} - #{@issue.tracker} ##{@issue.id}: #{@issue.subject}") %>
|
|
| 156 | 156 |
<% end %> |
| 157 | 157 | |
| 158 | 158 |
<%= context_menu issues_context_menu_path %> |
| app/views/journals/index.builder | ||
|---|---|---|
| 1 | 1 |
xml.instruct! |
| 2 | 2 |
xml.feed "xmlns" => "http://www.w3.org/2005/Atom" do |
| 3 | 3 |
xml.title @title |
| 4 |
xml.link "rel" => "self", "href" => url_for(:format => 'atom', :key => User.current.rss_key, :only_path => false)
|
|
| 4 |
xml.link "rel" => "self", "href" => url_for(:format => 'atom', :key => User.current.atom_key, :only_path => false)
|
|
| 5 | 5 |
xml.link "rel" => "alternate", "href" => home_url(:only_path => false) |
| 6 | 6 |
xml.id url_for(:controller => 'welcome', :only_path => false) |
| 7 | 7 |
xml.updated((@journals.first ? @journals.first.event_datetime : Time.now).xmlschema) |
| app/views/my/_sidebar.html.erb | ||
|---|---|---|
| 10 | 10 |
<h4><%= l(:label_feeds_access_key) %></h4> |
| 11 | 11 | |
| 12 | 12 |
<p> |
| 13 |
<% if @user.rss_token %>
|
|
| 14 |
<%= l(:label_feeds_access_key_created_on, distance_of_time_in_words(Time.now, @user.rss_token.created_on)) %>
|
|
| 13 |
<% if @user.atom_token %>
|
|
| 14 |
<%= l(:label_feeds_access_key_created_on, distance_of_time_in_words(Time.now, @user.atom_token.created_on)) %>
|
|
| 15 | 15 |
<% else %> |
| 16 | 16 |
<%= l(:label_missing_feeds_access_key) %> |
| 17 | 17 |
<% end %> |
| 18 |
(<%= link_to l(:button_reset), {:action => 'reset_rss_key'}, :method => :post %>)
|
|
| 18 |
(<%= link_to l(:button_reset), {:action => 'reset_atom_key'}, :method => :post %>)
|
|
| 19 | 19 |
</p> |
| 20 | 20 | |
| 21 | 21 |
<% if Setting.rest_api_enabled? %> |
| app/views/my/blocks/_issuesassignedtome.html.erb | ||
|---|---|---|
| 13 | 13 |
<% content_for :header_tags do %> |
| 14 | 14 |
<%= auto_discovery_link_tag(:atom, |
| 15 | 15 |
{:controller => 'issues', :action => 'index', :set_filter => 1,
|
| 16 |
:assigned_to_id => 'me', :format => 'atom', :key => User.current.rss_key},
|
|
| 16 |
:assigned_to_id => 'me', :format => 'atom', :key => User.current.atom_key},
|
|
| 17 | 17 |
{:title => l(:label_assigned_to_me_issues)}) %>
|
| 18 | 18 |
<% end %> |
| app/views/my/blocks/_issuesreportedbyme.html.erb | ||
|---|---|---|
| 14 | 14 |
<% content_for :header_tags do %> |
| 15 | 15 |
<%= auto_discovery_link_tag(:atom, |
| 16 | 16 |
{:controller => 'issues', :action => 'index', :set_filter => 1,
|
| 17 |
:author_id => 'me', :format => 'atom', :key => User.current.rss_key},
|
|
| 17 |
:author_id => 'me', :format => 'atom', :key => User.current.atom_key},
|
|
| 18 | 18 |
{:title => l(:label_reported_issues)}) %>
|
| 19 | 19 |
<% end %> |
| app/views/news/index.html.erb | ||
|---|---|---|
| 35 | 35 |
<p class="pagination"><%= pagination_links_full @news_pages %></p> |
| 36 | 36 | |
| 37 | 37 |
<% other_formats_links do |f| %> |
| 38 |
<%= f.link_to 'Atom', :url => {:project_id => @project, :key => User.current.rss_key} %>
|
|
| 38 |
<%= f.link_to 'Atom', :url => {:project_id => @project, :key => User.current.atom_key} %>
|
|
| 39 | 39 |
<% end %> |
| 40 | 40 | |
| 41 | 41 |
<% content_for :header_tags do %> |
| 42 |
<%= auto_discovery_link_tag(:atom, params.merge({:format => 'atom', :page => nil, :key => User.current.rss_key})) %>
|
|
| 42 |
<%= auto_discovery_link_tag(:atom, params.merge({:format => 'atom', :page => nil, :key => User.current.atom_key})) %>
|
|
| 43 | 43 |
<%= stylesheet_link_tag 'scm' %> |
| 44 | 44 |
<% end %> |
| 45 | 45 | |
| app/views/projects/index.html.erb | ||
|---|---|---|
| 1 | 1 |
<% content_for :header_tags do %> |
| 2 |
<%= auto_discovery_link_tag(:atom, {:action => 'index', :format => 'atom', :key => User.current.rss_key}) %>
|
|
| 2 |
<%= auto_discovery_link_tag(:atom, {:action => 'index', :format => 'atom', :key => User.current.atom_key}) %>
|
|
| 3 | 3 |
<% end %> |
| 4 | 4 | |
| 5 | 5 |
<div class="contextual"> |
| ... | ... | |
| 24 | 24 |
<% end %> |
| 25 | 25 | |
| 26 | 26 |
<% other_formats_links do |f| %> |
| 27 |
<%= f.link_to 'Atom', :url => {:key => User.current.rss_key} %>
|
|
| 27 |
<%= f.link_to 'Atom', :url => {:key => User.current.atom_key} %>
|
|
| 28 | 28 |
<% end %> |
| 29 | 29 | |
| 30 | 30 |
<% content_for :sidebar do %> |
| app/views/projects/show.html.erb | ||
|---|---|---|
| 91 | 91 |
<% end %> |
| 92 | 92 | |
| 93 | 93 |
<% content_for :header_tags do %> |
| 94 |
<%= auto_discovery_link_tag(:atom, {:controller => 'activities', :action => 'index', :id => @project, :format => 'atom', :key => User.current.rss_key}) %>
|
|
| 94 |
<%= auto_discovery_link_tag(:atom, {:controller => 'activities', :action => 'index', :id => @project, :format => 'atom', :key => User.current.atom_key}) %>
|
|
| 95 | 95 |
<% end %> |
| 96 | 96 | |
| 97 | 97 |
<% html_title(l(:label_overview)) -%> |
| app/views/repositories/revisions.html.erb | ||
|---|---|---|
| 24 | 24 |
<%= auto_discovery_link_tag( |
| 25 | 25 |
:atom, |
| 26 | 26 |
params.merge( |
| 27 |
{:format => 'atom', :page => nil, :key => User.current.rss_key})) %>
|
|
| 27 |
{:format => 'atom', :page => nil, :key => User.current.atom_key})) %>
|
|
| 28 | 28 |
<% end %> |
| 29 | 29 | |
| 30 | 30 |
<% other_formats_links do |f| %> |
| 31 |
<%= f.link_to 'Atom', :url => {:key => User.current.rss_key} %>
|
|
| 31 |
<%= f.link_to 'Atom', :url => {:key => User.current.atom_key} %>
|
|
| 32 | 32 |
<% end %> |
| 33 | 33 | |
| 34 | 34 |
<% html_title(l(:label_revision_plural)) -%> |
| app/views/repositories/show.html.erb | ||
|---|---|---|
| 44 | 44 |
<%= auto_discovery_link_tag( |
| 45 | 45 |
:atom, params.merge( |
| 46 | 46 |
{:format => 'atom', :action => 'revisions',
|
| 47 |
:id => @project, :page => nil, :key => User.current.rss_key})) %>
|
|
| 47 |
:id => @project, :page => nil, :key => User.current.atom_key})) %>
|
|
| 48 | 48 |
<% end %> |
| 49 | 49 | |
| 50 | 50 |
<% other_formats_links do |f| %> |
| 51 | 51 |
<%= f.link_to 'Atom', |
| 52 | 52 |
:url => {:action => 'revisions', :id => @project,
|
| 53 | 53 |
:repository_id => @repository.identifier_param, |
| 54 |
:key => User.current.rss_key} %>
|
|
| 54 |
:key => User.current.atom_key} %>
|
|
| 55 | 55 |
<% end %> |
| 56 | 56 |
<% end %> |
| 57 | 57 |
<% end %> |
| app/views/timelog/index.html.erb | ||
|---|---|---|
| 21 | 21 |
<p class="pagination"><%= pagination_links_full @entry_pages, @entry_count %></p> |
| 22 | 22 | |
| 23 | 23 |
<% other_formats_links do |f| %> |
| 24 |
<%= f.link_to 'Atom', :url => params.merge({:issue_id => @issue, :key => User.current.rss_key}) %>
|
|
| 24 |
<%= f.link_to 'Atom', :url => params.merge({:issue_id => @issue, :key => User.current.atom_key}) %>
|
|
| 25 | 25 |
<%= f.link_to 'CSV', :url => params, :onclick => "showModal('csv-export-options', '330px'); return false;" %>
|
| 26 | 26 |
<% end %> |
| 27 | 27 | |
| ... | ... | |
| 43 | 43 |
<% html_title l(:label_spent_time), l(:label_details) %> |
| 44 | 44 | |
| 45 | 45 |
<% content_for :header_tags do %> |
| 46 |
<%= auto_discovery_link_tag(:atom, {:issue_id => @issue, :format => 'atom', :key => User.current.rss_key}, :title => l(:label_spent_time)) %>
|
|
| 46 |
<%= auto_discovery_link_tag(:atom, {:issue_id => @issue, :format => 'atom', :key => User.current.atom_key}, :title => l(:label_spent_time)) %>
|
|
| 47 | 47 |
<% end %> |
| app/views/users/show.html.erb | ||
|---|---|---|
| 59 | 59 |
</div> |
| 60 | 60 | |
| 61 | 61 |
<% other_formats_links do |f| %> |
| 62 |
<%= f.link_to 'Atom', :url => {:controller => 'activities', :action => 'index', :id => nil, :user_id => @user, :key => User.current.rss_key} %>
|
|
| 62 |
<%= f.link_to 'Atom', :url => {:controller => 'activities', :action => 'index', :id => nil, :user_id => @user, :key => User.current.atom_key} %>
|
|
| 63 | 63 |
<% end %> |
| 64 | 64 | |
| 65 | 65 |
<% content_for :header_tags do %> |
| 66 |
<%= auto_discovery_link_tag(:atom, :controller => 'activities', :action => 'index', :user_id => @user, :format => :atom, :key => User.current.rss_key) %>
|
|
| 66 |
<%= auto_discovery_link_tag(:atom, :controller => 'activities', :action => 'index', :user_id => @user, :format => :atom, :key => User.current.atom_key) %>
|
|
| 67 | 67 |
<% end %> |
| 68 | 68 |
<% end %> |
| 69 | 69 |
<%= call_hook :view_account_right_bottom, :user => @user %> |
| app/views/welcome/index.html.erb | ||
|---|---|---|
| 32 | 32 |
</div> |
| 33 | 33 | |
| 34 | 34 |
<% content_for :header_tags do %> |
| 35 |
<%= auto_discovery_link_tag(:atom, {:controller => 'news', :action => 'index', :key => User.current.rss_key, :format => 'atom'},
|
|
| 35 |
<%= auto_discovery_link_tag(:atom, {:controller => 'news', :action => 'index', :key => User.current.atom_key, :format => 'atom'},
|
|
| 36 | 36 |
:title => "#{Setting.app_title}: #{l(:label_news_latest)}") %>
|
| 37 |
<%= auto_discovery_link_tag(:atom, {:controller => 'activities', :action => 'index', :key => User.current.rss_key, :format => 'atom'},
|
|
| 37 |
<%= auto_discovery_link_tag(:atom, {:controller => 'activities', :action => 'index', :key => User.current.atom_key, :format => 'atom'},
|
|
| 38 | 38 |
:title => "#{Setting.app_title}: #{l(:label_activity)}") %>
|
| 39 | 39 |
<% end %> |
| app/views/wiki/date_index.html.erb | ||
|---|---|---|
| 23 | 23 | |
| 24 | 24 |
<% unless @pages.empty? %> |
| 25 | 25 |
<% other_formats_links do |f| %> |
| 26 |
<%= f.link_to 'Atom', :url => {:controller => 'activities', :action => 'index', :id => @project, :show_wiki_edits => 1, :key => User.current.rss_key} %>
|
|
| 26 |
<%= f.link_to 'Atom', :url => {:controller => 'activities', :action => 'index', :id => @project, :show_wiki_edits => 1, :key => User.current.atom_key} %>
|
|
| 27 | 27 |
<% if User.current.allowed_to?(:export_wiki_pages, @project) %> |
| 28 | 28 |
<%= f.link_to('PDF', :url => {:action => 'export', :format => 'pdf'}) %>
|
| 29 | 29 |
<%= f.link_to('HTML', :url => {:action => 'export'}) %>
|
| ... | ... | |
| 32 | 32 |
<% end %> |
| 33 | 33 | |
| 34 | 34 |
<% content_for :header_tags do %> |
| 35 |
<%= auto_discovery_link_tag(:atom, :controller => 'activities', :action => 'index', :id => @project, :show_wiki_edits => 1, :format => 'atom', :key => User.current.rss_key) %>
|
|
| 35 |
<%= auto_discovery_link_tag(:atom, :controller => 'activities', :action => 'index', :id => @project, :show_wiki_edits => 1, :format => 'atom', :key => User.current.atom_key) %>
|
|
| 36 | 36 |
<% end %> |
| app/views/wiki/index.html.erb | ||
|---|---|---|
| 19 | 19 |
<%= f.link_to 'Atom', |
| 20 | 20 |
:url => {:controller => 'activities', :action => 'index',
|
| 21 | 21 |
:id => @project, :show_wiki_edits => 1, |
| 22 |
:key => User.current.rss_key} %>
|
|
| 22 |
:key => User.current.atom_key} %>
|
|
| 23 | 23 |
<% if User.current.allowed_to?(:export_wiki_pages, @project) %> |
| 24 | 24 |
<%= f.link_to('PDF', :url => {:action => 'export', :format => 'pdf'}) %>
|
| 25 | 25 |
<%= f.link_to('HTML', :url => {:action => 'export'}) %>
|
| ... | ... | |
| 31 | 31 |
<%= auto_discovery_link_tag( |
| 32 | 32 |
:atom, :controller => 'activities', :action => 'index', |
| 33 | 33 |
:id => @project, :show_wiki_edits => 1, :format => 'atom', |
| 34 |
:key => User.current.rss_key) %>
|
|
| 34 |
:key => User.current.atom_key) %>
|
|
| 35 | 35 |
<% end %> |
| config/routes.rb | ||
|---|---|---|
| 64 | 64 |
match 'my/account/destroy', :controller => 'my', :action => 'destroy', :via => [:get, :post] |
| 65 | 65 |
match 'my/page', :controller => 'my', :action => 'page', :via => :get |
| 66 | 66 |
match 'my', :controller => 'my', :action => 'index', :via => :get # Redirects to my/page |
| 67 |
match 'my/reset_rss_key', :controller => 'my', :action => 'reset_rss_key', :via => :post
|
|
| 67 |
match 'my/reset_atom_key', :controller => 'my', :action => 'reset_atom_key', :via => :post
|
|
| 68 | 68 |
match 'my/reset_api_key', :controller => 'my', :action => 'reset_api_key', :via => :post |
| 69 | 69 |
match 'my/password', :controller => 'my', :action => 'password', :via => [:get, :post] |
| 70 | 70 |
match 'my/page_layout', :controller => 'my', :action => 'page_layout', :via => :get |
| test/functional/my_controller_test.rb | ||
|---|---|---|
| 208 | 208 |
assert_equal ['documents', 'calendar', 'latestnews'], User.find(2).pref[:my_page_layout]['left'] |
| 209 | 209 |
end |
| 210 | 210 | |
| 211 |
def test_reset_rss_key_with_existing_key
|
|
| 212 |
@previous_token_value = User.find(2).rss_key # Will generate one if it's missing
|
|
| 213 |
post :reset_rss_key
|
|
| 211 |
def test_reset_atom_key_with_existing_key
|
|
| 212 |
@previous_token_value = User.find(2).atom_key # Will generate one if it's missing
|
|
| 213 |
post :reset_atom_key
|
|
| 214 | 214 | |
| 215 |
assert_not_equal @previous_token_value, User.find(2).rss_key
|
|
| 216 |
assert User.find(2).rss_token
|
|
| 215 |
assert_not_equal @previous_token_value, User.find(2).atom_key
|
|
| 216 |
assert User.find(2).atom_token
|
|
| 217 | 217 |
assert_match /reset/, flash[:notice] |
| 218 | 218 |
assert_redirected_to '/my/account' |
| 219 | 219 |
end |
| 220 | 220 | |
| 221 |
def test_reset_rss_key_without_existing_key
|
|
| 222 |
assert_nil User.find(2).rss_token
|
|
| 223 |
post :reset_rss_key
|
|
| 221 |
def test_reset_atom_key_without_existing_key
|
|
| 222 |
assert_nil User.find(2).atom_token
|
|
| 223 |
post :reset_atom_key
|
|
| 224 | 224 | |
| 225 |
assert User.find(2).rss_token
|
|
| 225 |
assert User.find(2).atom_token
|
|
| 226 | 226 |
assert_match /reset/, flash[:notice] |
| 227 | 227 |
assert_redirected_to '/my/account' |
| 228 | 228 |
end |
| test/integration/application_test.rb | ||
|---|---|---|
| 54 | 54 |
get 'issues/4.atom' |
| 55 | 55 |
assert_response 302 |
| 56 | 56 | |
| 57 |
rss_key = User.find(2).rss_key
|
|
| 58 |
get "issues/4.atom?key=#{rss_key}"
|
|
| 57 |
atom_key = User.find(2).atom_key
|
|
| 58 |
get "issues/4.atom?key=#{atom_key}"
|
|
| 59 | 59 |
assert_response 200 |
| 60 | 60 |
assert_nil session[:user_id] |
| 61 | 61 |
end |
| test/integration/routing/my_test.rb | ||
|---|---|---|
| 40 | 40 |
{ :controller => 'my', :action => 'index' }
|
| 41 | 41 |
) |
| 42 | 42 |
assert_routing( |
| 43 |
{ :method => 'post', :path => "/my/reset_rss_key" },
|
|
| 44 |
{ :controller => 'my', :action => 'reset_rss_key' }
|
|
| 43 |
{ :method => 'post', :path => "/my/reset_atom_key" },
|
|
| 44 |
{ :controller => 'my', :action => 'reset_atom_key' }
|
|
| 45 | 45 |
) |
| 46 | 46 |
assert_routing( |
| 47 | 47 |
{ :method => 'post', :path => "/my/reset_api_key" },
|
| test/unit/user_test.rb | ||
|---|---|---|
| 659 | 659 |
assert_equal 1, anon2.errors.count |
| 660 | 660 |
end |
| 661 | 661 | |
| 662 |
def test_rss_key
|
|
| 663 |
assert_nil @jsmith.rss_token
|
|
| 664 |
key = @jsmith.rss_key
|
|
| 662 |
def test_atom_key
|
|
| 663 |
assert_nil @jsmith.atom_token
|
|
| 664 |
key = @jsmith.atom_key
|
|
| 665 | 665 |
assert_equal 40, key.length |
| 666 | 666 | |
| 667 | 667 |
@jsmith.reload |
| 668 |
assert_equal key, @jsmith.rss_key
|
|
| 668 |
assert_equal key, @jsmith.atom_key
|
|
| 669 | 669 |
end |
| 670 | 670 | |
| 671 |
def test_rss_key_should_not_be_generated_twice
|
|
| 671 |
def test_atom_key_should_not_be_generated_twice
|
|
| 672 | 672 |
assert_difference 'Token.count', 1 do |
| 673 |
key1 = @jsmith.rss_key
|
|
| 674 |
key2 = @jsmith.rss_key
|
|
| 673 |
key1 = @jsmith.atom_key
|
|
| 674 |
key2 = @jsmith.atom_key
|
|
| 675 | 675 |
assert_equal key1, key2 |
| 676 | 676 |
end |
| 677 | 677 |
end |