external_credentials_controller.rb 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. # Copyright (C) 2012-2014 Zammad Foundation, http://zammad-foundation.org/
  2. class ExternalCredentialsController < ApplicationController
  3. before_action :authentication_check
  4. def index
  5. deny_if_not_role(Z_ROLENAME_ADMIN)
  6. model_index_render(ExternalCredential, params)
  7. end
  8. def show
  9. deny_if_not_role(Z_ROLENAME_ADMIN)
  10. model_show_render(ExternalCredential, params)
  11. end
  12. def create
  13. deny_if_not_role(Z_ROLENAME_ADMIN)
  14. model_create_render(ExternalCredential, params)
  15. end
  16. def update
  17. deny_if_not_role(Z_ROLENAME_ADMIN)
  18. model_update_render(ExternalCredential, params)
  19. end
  20. def destroy
  21. deny_if_not_role(Z_ROLENAME_ADMIN)
  22. model_destory_render(ExternalCredential, params)
  23. end
  24. def app_verify
  25. attributes = ExternalCredential.app_verify(params)
  26. render json: { attributes: attributes }, status: :ok
  27. return
  28. rescue => e
  29. render json: { error: e.message }, status: :ok
  30. end
  31. def link_account
  32. deny_if_not_role(Z_ROLENAME_ADMIN)
  33. provider = params[:provider].downcase
  34. attributes = ExternalCredential.request_account_to_link(provider)
  35. session[:request_token] = attributes[:request_token]
  36. redirect_to attributes[:authorize_url]
  37. end
  38. def callback
  39. deny_if_not_role(Z_ROLENAME_ADMIN)
  40. provider = params[:provider].downcase
  41. channel = ExternalCredential.link_account(provider, session[:request_token], params)
  42. session[:request_token] = nil
  43. redirect_to app_url(provider, channel.id)
  44. end
  45. private
  46. def callback_url(provider)
  47. ExternalCredential.callback_url(provider)
  48. end
  49. def app_url(provider, channel_id)
  50. ExternalCredential.app_url(provider, channel_id)
  51. end
  52. end