Patch #15118 ยป 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 |