class UsersController < ApplicationController def index @total_users = User.all().length if params[:key_search] @users = User.where('id LIKE :key_search OR username LIKE :key_search', key_search: "%#{params[:key_search]}%").page(params[:page]) else @users = User.order(:id).page(params[:page]) end end def show @user = User.find(params[:id]) @app_title = @user.username end def validate_key row = Session.find_by_token(params[:key]) if row \ and (time_delta(Time.now.utc, row.updated_at) < 10.minutes) \ and (row.is_admin or row.user_id == params[:id]) @user = User.find(params[:id]) session[:identified] = true session[:identified_at] = Time.now.utc redirect_to edit_user_path(id: @user.id) and return else redirect_to user_path(id: params[:id]), flash: {error: true} and return end end def edit @user = User.find(params[:id]) if session[:identified] and (time_delta(Time.now.utc, session[:identified_at]) < 10.minutes) @app_title = @user.username render "users/edit" else redirect_to user_path(id: params[:id]), flash: {error: true} and return end end def update @user = User.find(params[:id]) @user.update(update_post_params) redirect_to user_path(id: @user.id) end def destroy @user = User.find(params[:id]) @user.destroy redirect_to users_path end private def update_post_params params.require(:user).permit(:os, :config, :pays) end def time_delta(new, old) Time.parse(new.to_s) - Time.parse(old.to_s) end end