before_filter :require_allow_read_prefs, :only => [:api_details]
before_filter :require_allow_read_gpx, :only => [:api_gpx_files]
before_filter :require_cookies, :only => [:login, :confirm]
- before_filter :require_administrator, :only => [:activate, :deactivate, :confirm, :hide, :unhide, :delete]
- before_filter :lookup_this_user, :only => [:activate, :deactivate, :confirm, :hide, :unhide, :delete]
+ before_filter :require_administrator, :only => [:set_status, :delete]
+ before_filter :lookup_this_user, :only => [:set_status, :delete]
filter_parameter_logging :password, :pass_crypt, :pass_crypt_confirmation
- cache_sweeper :user_sweeper, :only => [:account, :hide, :unhide, :delete]
+ cache_sweeper :user_sweeper, :only => [:account, :set_status, :delete]
def save
@title = t 'user.new.title'
end
##
- # activate a user, allowing them to log in
- def activate
- @this_user.update_attributes(:status => "active")
- redirect_to :controller => 'user', :action => 'view', :display_name => params[:display_name]
- end
-
- ##
- # deactivate a user, preventing them from logging in
- def deactivate
- @this_user.update_attributes(:status => "pending")
- redirect_to :controller => 'user', :action => 'view', :display_name => params[:display_name]
- end
-
- ##
- # confirm a user, overriding any suspension triggered by spam scoring
- def confirm
- @this_user.update_attributes(:status => "confirmed")
- redirect_to :controller => 'user', :action => 'view', :display_name => params[:display_name]
- end
-
- ##
- # hide a user, marking them as logically deleted
- def hide
- @this_user.update_attributes(:status => "deleted")
- redirect_to :controller => 'user', :action => 'view', :display_name => params[:display_name]
- end
-
- ##
- # unhide a user, clearing the logically deleted flag
- def unhide
- @this_user.update_attributes(:status => "active")
+ # sets a user's status
+ def set_status
+ @this_user.update_attributes(:status => params[:status])
redirect_to :controller => 'user', :action => 'view', :display_name => params[:display_name]
end
<% if @user and @user.administrator? %>
<br/>
<% if ["active", "confirmed"].include? @this_user.status %>
- <%= link_to t('user.view.deactivate_user'), {:controller => 'user', :action => 'deactivate', :display_name => @this_user.display_name}, {:confirm => t('user.view.confirm')} %> |
+ <%= link_to t('user.view.deactivate_user'), {:controller => 'user', :action => 'set_status', :status => 'pending', :display_name => @this_user.display_name}, {:confirm => t('user.view.confirm')} %> |
<% elsif ["pending"].include? @this_user.status %>
- <%= link_to t('user.view.activate_user'), {:controller => 'user', :action => 'activate', :display_name => @this_user.display_name}, {:confirm => t('user.view.confirm')} %> |
+ <%= link_to t('user.view.activate_user'), {:controller => 'user', :action => 'set_status', :status => 'active', :display_name => @this_user.display_name}, {:confirm => t('user.view.confirm')} %> |
<% end %>
<% if ["active", "suspended"].include? @this_user.status %>
- <%= link_to t('user.view.confirm_user'), {:controller => 'user', :action => 'confirm', :display_name => @this_user.display_name}, {:confirm => t('user.view.confirm')} %> |
+ <%= link_to t('user.view.confirm_user'), {:controller => 'user', :action => 'set_status', :status => 'confirmed', :display_name => @this_user.display_name}, {:confirm => t('user.view.confirm')} %> |
<% end %>
<% if ["pending", "active", "confirmed", "suspended"].include? @this_user.status %>
- <%= link_to t('user.view.hide_user'), {:controller => 'user', :action => 'hide', :display_name => @this_user.display_name}, {:confirm => t('user.view.confirm')} %> |
+ <%= link_to t('user.view.hide_user'), {:controller => 'user', :action => 'set_status', :status => 'deleted', :display_name => @this_user.display_name}, {:confirm => t('user.view.confirm')} %> |
<% else %>
- <%= link_to t('user.view.unhide_user'), {:controller => 'user', :action => 'unhide', :display_name => @this_user.display_name}, {:confirm => t('user.view.confirm')} %> |
+ <%= link_to t('user.view.unhide_user'), {:controller => 'user', :action => 'set_status', :status => 'active', :display_name => @this_user.display_name}, {:confirm => t('user.view.confirm')} %> |
<% end %>
<%= link_to t('user.view.delete_user'), {:controller => 'user', :action => 'delete', :display_name => @this_user.display_name}, {:confirm => t('user.view.confirm')} %>
<% end %>
map.connect '/user/:display_name/diary/:id/hide', :controller => 'diary_entry', :action => 'hide', :id => /\d+/
map.connect '/user/:display_name/diary/:id/hidecomment/:comment', :controller => 'diary_entry', :action => 'hidecomment', :id => /\d+/, :comment => /\d+/
map.connect '/user/:display_name/account', :controller => 'user', :action => 'account'
- map.connect '/user/:display_name/activate', :controller => 'user', :action => 'activate'
- map.connect '/user/:display_name/deactivate', :controller => 'user', :action => 'deactivate'
- map.connect '/user/:display_name/confirm', :controller => 'user', :action => 'confirm'
- map.connect '/user/:display_name/hide', :controller => 'user', :action => 'hide'
- map.connect '/user/:display_name/unhide', :controller => 'user', :action => 'unhide'
+ map.connect '/user/:display_name/set_status', :controller => 'user', :action => 'set_status'
map.connect '/user/:display_name/delete', :controller => 'user', :action => 'delete'
map.connect '/diary/new', :controller => 'diary_entry', :action => 'new'
map.connect '/diary', :controller => 'diary_entry', :action => 'list'