X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/59eebc05b2de2c85033237c06d9474d5072b4d1f..31659bedbe22001bc304e5c7c92c7b67b87d74e2:/app/controllers/oauth_clients_controller.rb diff --git a/app/controllers/oauth_clients_controller.rb b/app/controllers/oauth_clients_controller.rb index 00606c1ec..42b0921f1 100644 --- a/app/controllers/oauth_clients_controller.rb +++ b/app/controllers/oauth_clients_controller.rb @@ -1,53 +1,75 @@ class OauthClientsController < ApplicationController - layout 'site' + layout "site" + + before_action :authorize_web + before_action :set_locale + + authorize_resource :class => ClientApplication - before_filter :authorize_web - before_filter :require_user - def index - @client_applications = @user.client_applications - @tokens = @user.oauth_tokens.find :all, :conditions => 'oauth_tokens.invalidated_at is null and oauth_tokens.authorized_at is not null' + @client_applications = current_user.client_applications + @tokens = current_user.oauth_tokens.authorized end - def new - @client_application = ClientApplication.new + def show + @client_application = current_user.client_applications.find(params[:id]) + rescue ActiveRecord::RecordNotFound + @type = "client application" + render :action => "not_found", :status => :not_found end - def create - @client_application = @user.client_applications.build(params[:client_application]) - if @client_application.save - flash[:notice] = "Registered the information successfully" - redirect_to :action => "show", :id => @client_application.id + def new + if Settings.oauth_10_registration + @client_application = ClientApplication.new else - render :action => "new" + flash[:error] = t ".disabled" + redirect_to :action => "index" end end - - def show - @client_application = @user.client_applications.find(params[:id]) + + def edit + @client_application = current_user.client_applications.find(params[:id]) rescue ActiveRecord::RecordNotFound @type = "client application" render :action => "not_found", :status => :not_found end - def edit - @client_application = @user.client_applications.find(params[:id]) + def create + @client_application = current_user.client_applications.build(application_params) + if @client_application.save + flash[:notice] = t ".flash" + redirect_to :action => "show", :id => @client_application.id + else + render :action => "new" + end end - + def update - @client_application = @user.client_applications.find(params[:id]) - if @client_application.update_attributes(params[:client_application]) - flash[:notice] = "Updated the client information successfully" + @client_application = current_user.client_applications.find(params[:id]) + if @client_application.update(application_params) + flash[:notice] = t ".flash" redirect_to :action => "show", :id => @client_application.id else render :action => "edit" end + rescue ActiveRecord::RecordNotFound + @type = "client application" + render :action => "not_found", :status => :not_found end def destroy - @client_application = @user.client_applications.find(params[:id]) + @client_application = current_user.client_applications.find(params[:id]) @client_application.destroy - flash[:notice] = "Destroyed the client application registration" + flash[:notice] = t ".flash" redirect_to :action => "index" + rescue ActiveRecord::RecordNotFound + @type = "client application" + render :action => "not_found", :status => :not_found + end + + private + + def application_params + params.require(:client_application).permit(:name, :url, :callback_url, :support_url, ClientApplication.all_permissions) end end