Sha256: 7791aaf7c34b3acdd5794bc90d1152220ac19d44e1d5e14a91dbb8f1c473ccf4
Contents?: true
Size: 1.89 KB
Versions: 18
Compression:
Stored size: 1.89 KB
Contents
class Dorsale::CustomerVault::LinksController < ::Dorsale::CustomerVault::ApplicationController before_action :set_objects def index authorize @person, :read? end def new authorize @person, :update? @link ||= scope.new end def create authorize @person, :update? @link ||= scope.new(link_params_for_create) if @link.save flash[:notice] = t("messages.links.create_ok") redirect_to back_url else render :new end end def edit authorize @person, :update? end def update authorize @person, :update? if @link.update(link_params_for_update) flash[:notice] = t("messages.links.update_ok") redirect_to back_url else render :edit end end def destroy authorize @person, :update? if @link.destroy flash[:notice] = t("messages.links.delete_ok") else flash[:alert] = t("messages.links.delete_error") end redirect_to back_url end private def model ::Dorsale::CustomerVault::Link end def back_url customer_vault_person_links_path(@person) end def person_scope policy_scope(::Dorsale::CustomerVault::Person) end def set_objects @people ||= person_scope.all @person ||= person_scope.find(params[:person_id]) if params.key?(:id) @link ||= scope.find(params[:id]) if @person == @link.alice @link.person = @link.alice @link.other_person = @link.bob end if @person == @link.bob @link.person = @link.bob @link.other_person = @link.alice end end end def permitted_params [ :title, ] end def link_params params.fetch(:link, {}).permit(permitted_params) end def link_params_for_create link_params.merge( :alice => @person, :bob_id => params.dig(:link, :bob_id) ) end def link_params_for_update link_params end end
Version data entries
18 entries across 18 versions & 1 rubygems