require 'securerandom'
class Api::V1::UsersController < Api::V1::BaseController
  CANNOT_MANAGE = "You do not have the permission to manager users"
  NOT_FOUND = "User not found"
  NOT_ALLOWED = "Not allowed to reset your own password in this fashion"
  PASS_LENGTH = 8

  def password_reset
    if can? :manage, User
      user = User.find_by_id(params[:user_id])
      render :json => { "errors" => [NOT_FOUND]}, :status => 404 and return if user.nil?
      render :json => { "errors" => [NOT_ALLOWED]}, :status => 403 and return if user.id == current_user.id

      new_pass = SecureRandom.hex[0,PASS_LENGTH]
      user.password = new_pass
      user.save
      render :json => { "password" => new_pass}, :status => 200 and return
    else
      render :json => { "errors" => [CANNOT_MANAGE]}, :status => 403 and return
    end
  end


=begin  Is this here by accident? Commenting out for now (1/30/14)
  def checkout
    #must use @current_user since user may not have signed in
    if !@current_user.checked_in?
      render :json => { "error" => "You were not even checked in."}, :status => 404 and return
    else
      @current_user.checkout
      render :nothing => true, :status => 204 and return
    end
  end
=end
end