PageRenderTime 1355ms CodeModel.GetById 11ms RepoModel.GetById 1ms app.codeStats 0ms

/api/app/controllers/spree/api/users_controller.rb

https://github.com/tomz/spree
Ruby | 53 lines | 44 code | 9 blank | 0 comment | 2 complexity | 5a986253eddf12e7c2e031bff7b3123d MD5 | raw file
Possible License(s): BSD-3-Clause
  1. module Spree
  2. module Api
  3. class UsersController < Spree::Api::BaseController
  4. def index
  5. @users = Spree.user_class.accessible_by(current_ability,:read).ransack(params[:q]).result.page(params[:page]).per(params[:per_page])
  6. respond_with(@users)
  7. end
  8. def show
  9. respond_with(user)
  10. end
  11. def new
  12. end
  13. def create
  14. authorize! :create, Spree.user_class
  15. @user = Spree.user_class.new(user_params)
  16. if @user.save
  17. respond_with(@user, :status => 201, :default_template => :show)
  18. else
  19. invalid_resource!(@user)
  20. end
  21. end
  22. def update
  23. authorize! :update, user
  24. if user.update_attributes(user_params)
  25. respond_with(user, :status => 200, :default_template => :show)
  26. else
  27. invalid_resource!(user)
  28. end
  29. end
  30. def destroy
  31. authorize! :destroy, user
  32. user.destroy
  33. respond_with(user, :status => 204)
  34. end
  35. private
  36. def user
  37. @user ||= Spree.user_class.accessible_by(current_ability, :read).find(params[:id])
  38. end
  39. def user_params
  40. params.require(:user).permit(permitted_user_attributes)
  41. end
  42. end
  43. end
  44. end