From fb157887a6e0ac725d04910bd64278dfa5d609de Mon Sep 17 00:00:00 2001 From: jcwimer Date: Fri, 8 Jan 2016 13:14:29 +0000 Subject: [PATCH] Added ability to remove permissions --- app/controllers/tournaments_controller.rb | 26 ++++++++++++++++--- app/views/tournaments/delegate.html.erb | 3 ++- .../tournaments/school_delegate.html.erb | 3 ++- config/routes.rb | 2 ++ 4 files changed, 29 insertions(+), 5 deletions(-) diff --git a/app/controllers/tournaments_controller.rb b/app/controllers/tournaments_controller.rb index 0c45605..4bbec15 100644 --- a/app/controllers/tournaments_controller.rb +++ b/app/controllers/tournaments_controller.rb @@ -1,10 +1,30 @@ class TournamentsController < ApplicationController - before_action :set_tournament, only: [:school_delegate,:delegate,:matches,:weigh_in,:weigh_in_weight,:create_custom_weights,:show,:edit,:update,:destroy,:up_matches,:no_matches,:team_scores,:brackets,:generate_matches,:bracket,:all_brackets] - before_filter :check_access_manage, only: [:school_delegate,:weigh_in,:weigh_in_weight,:create_custom_weights,:update,:edit,:generate_matches,:matches] - before_filter :check_access_destroy, only: [:destroy,:delegate] + before_action :set_tournament, only: [:remove_school_delegate,:remove_delegate,:school_delegate,:delegate,:matches,:weigh_in,:weigh_in_weight,:create_custom_weights,:show,:edit,:update,:destroy,:up_matches,:no_matches,:team_scores,:brackets,:generate_matches,:bracket,:all_brackets] + before_filter :check_access_manage, only: [:remove_school_delegate,:school_delegate,:weigh_in,:weigh_in_weight,:create_custom_weights,:update,:edit,:generate_matches,:matches] + before_filter :check_access_destroy, only: [:destroy,:delegate,:remove_delegate] before_filter :check_for_matches, only: [:up_matches,:bracket,:all_brackets] + def remove_delegate + if params[:delegate] + @delegate = TournamentDelegate.find(params[:delegate]) + @delegate.destroy + respond_to do |format| + format.html { redirect_to "/tournaments/#{@tournament.id}/delegate", notice: 'Delegated permissions removed successfully' } + end + end + end + + def remove_school_delegate + if params[:delegate] + @delegate = SchoolDelegate.find(params[:delegate]) + @delegate.destroy + respond_to do |format| + format.html { redirect_to "/tournaments/#{@tournament.id}/school_delegate", notice: 'Delegated permissions removed successfully' } + end + end + end + def school_delegate if params[:search] @users = User.search(params[:search]) diff --git a/app/views/tournaments/delegate.html.erb b/app/views/tournaments/delegate.html.erb index f8bfa90..4c945db 100644 --- a/app/views/tournaments/delegate.html.erb +++ b/app/views/tournaments/delegate.html.erb @@ -50,13 +50,14 @@ User Email + <% @users_delegates.each do |delegate| %> <%= delegate.user.email %> - + <%= link_to 'Remove permissions', "/tournaments/#{@tournament.id}/#{delegate.id}/remove_delegate", method: :delete, confirm: 'Are you sure?', :class=>"btn btn-danger btn-sm" %> <% end %> diff --git a/app/views/tournaments/school_delegate.html.erb b/app/views/tournaments/school_delegate.html.erb index e5803ca..291206c 100644 --- a/app/views/tournaments/school_delegate.html.erb +++ b/app/views/tournaments/school_delegate.html.erb @@ -54,6 +54,7 @@ User Email School + @@ -61,7 +62,7 @@ <%= delegate.user.email %> <%= delegate.school.name %> - + <%= link_to 'Remove permissions', "/tournaments/#{@tournament.id}/#{delegate.id}/remove_school_delegate", method: :delete, confirm: 'Are you sure?', :class=>"btn btn-danger btn-sm" %> <% end %> diff --git a/config/routes.rb b/config/routes.rb index 175c963..34be217 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -42,8 +42,10 @@ Wrestling::Application.routes.draw do get 'tournaments/:id/matches' => 'tournaments#matches' get 'tournaments/:id/delegate' => 'tournaments#delegate', :as => :tournament_delegate post 'tournaments/:id/delegate' => 'tournaments#delegate', :as => :set_tournament_delegate + delete 'tournaments/:id/:delegate/remove_delegate' => 'tournaments#remove_delegate', :as => :delete_delegate_path get 'tournaments/:id/school_delegate' => 'tournaments#school_delegate', :as => :school_delegate post 'tournaments/:id/school_delegate' => 'tournaments#school_delegate', :as => :set_school_delegate + delete 'tournaments/:id/:delegate/remove_school_delegate' => 'tournaments#remove_school_delegate', :as => :delete_school_delegate_path # Example of regular route: # get 'products/:id' => 'catalog#view'