51 lines
1.2 KiB
Ruby
51 lines
1.2 KiB
Ruby
class UsersController < ApplicationController
|
|
before_action :authenticate_user!
|
|
after_action :verify_authorized
|
|
|
|
def index
|
|
@users = policy_scope User.all
|
|
authorize @users
|
|
end
|
|
|
|
def show
|
|
@user ||= User.find(params[:id])
|
|
@micropost = current_user.microposts.build if current_user.signed_in?
|
|
@microposts = @user.microposts.paginate(page: params[:page])
|
|
authorize @user
|
|
end
|
|
|
|
def home
|
|
authorize current_user
|
|
@user = current_user
|
|
@micropost = current_user.microposts.build if current_user.signed_in?
|
|
@microposts = @user.microposts.paginate(page: params[:page])
|
|
@feed_items = current_user.feed.paginate(page: params[:page], per_page: 10)
|
|
# authorize @user
|
|
# redirect_to current_user
|
|
end
|
|
|
|
|
|
def update
|
|
@user = User.find(params[:id])
|
|
authorize @user
|
|
if @user.update_attributes(secure_params)
|
|
redirect_to users_path, notice: 'User updated.'
|
|
else
|
|
redirect_to users_path, alert: 'Unable to update user.'
|
|
end
|
|
end
|
|
|
|
def destroy
|
|
user = User.find(params[:id])
|
|
authorize user
|
|
user.destroy
|
|
redirect_to users_path, notice: 'User deleted.'
|
|
end
|
|
|
|
private
|
|
|
|
def secure_params
|
|
params.require(:user).permit(:role)
|
|
end
|
|
end
|