36 lines
1.1 KiB
Ruby
36 lines
1.1 KiB
Ruby
module Users
|
|
class StatusesController < ApplicationController
|
|
layout "site"
|
|
|
|
before_action :authorize_web
|
|
before_action :set_locale
|
|
before_action :check_database_readable
|
|
|
|
authorize_resource :class => :user_status
|
|
|
|
before_action :lookup_user_by_name
|
|
|
|
##
|
|
# sets a user's status
|
|
def update
|
|
@user.activate! if params[:event] == "activate"
|
|
@user.confirm! if params[:event] == "confirm"
|
|
@user.unconfirm! if params[:event] == "unconfirm"
|
|
@user.hide! if params[:event] == "hide"
|
|
@user.unhide! if params[:event] == "unhide"
|
|
@user.unsuspend! if params[:event] == "unsuspend"
|
|
@user.soft_destroy! if params[:event] == "soft_destroy" # destroy a user, marking them as deleted and removing personal data
|
|
redirect_to user_path(params[:user_display_name])
|
|
end
|
|
|
|
private
|
|
|
|
##
|
|
# ensure that there is a "user" instance variable
|
|
def lookup_user_by_name
|
|
@user = User.find_by!(:display_name => params[:user_display_name])
|
|
rescue ActiveRecord::RecordNotFound
|
|
redirect_to user_path(params[:user_display_name]) unless @user
|
|
end
|
|
end
|
|
end
|