All checks were successful
continuous-integration/drone/push Build is passing
See https://github.com/remotestorage/remotestorage.js/issues/900
52 lines
1.3 KiB
Ruby
52 lines
1.3 KiB
Ruby
class Services::RsAuthsController < Services::BaseController
|
|
before_action :authenticate_user!
|
|
before_action :require_feature_enabled
|
|
before_action :require_service_available
|
|
# before_action :require_service_enabled
|
|
before_action :find_rs_auth, only: [:destroy, :launch_app]
|
|
|
|
def index
|
|
@rs_auths = current_user.remote_storage_authorizations
|
|
# TODO sort by app name?
|
|
end
|
|
|
|
def destroy
|
|
@auth.destroy!
|
|
|
|
respond_to do |format|
|
|
format.html do redirect_to apps_services_storage_url, flash: {
|
|
success: 'App authorization revoked'
|
|
}
|
|
end
|
|
format.json { head :no_content }
|
|
end
|
|
end
|
|
|
|
def launch_app
|
|
user_address = Rails.env.development? ?
|
|
"#{current_user.cn}@localhost:3000" :
|
|
current_user.address
|
|
|
|
launch_url = "#{@auth.launch_url}#remotestorage=#{user_address}"
|
|
|
|
redirect_to launch_url, allow_other_host: true
|
|
end
|
|
|
|
private
|
|
|
|
def require_feature_enabled
|
|
unless Flipper.enabled?(:remotestorage, current_user)
|
|
http_status :forbidden
|
|
end
|
|
end
|
|
|
|
def require_service_available
|
|
http_status :not_found unless Setting.remotestorage_enabled?
|
|
end
|
|
|
|
def find_rs_auth
|
|
@auth = current_user.remote_storage_authorizations.find(params[:id])
|
|
http_status :not_found unless @auth.present?
|
|
end
|
|
end
|