Atualição de interface area consolidação e Relatório em PDF
This commit is contained in:
@@ -140,7 +140,7 @@ class ConsolidacoesController < ApplicationController
|
||||
|
||||
# GET /consolidacoes/:id/gerar_pdf_holerite?motorista=X
|
||||
def gerar_pdf_holerite
|
||||
authorize @consolidacao, :show?
|
||||
autorizar_holerite!(params[:motorista])
|
||||
motorista = params[:motorista]
|
||||
user_mot = User.motorista.find_by('LOWER(nome) = ?', motorista.to_s.downcase)
|
||||
user_mot&.regenerar_login_token! if user_mot&.login_token.blank?
|
||||
@@ -167,6 +167,17 @@ class ConsolidacoesController < ApplicationController
|
||||
|
||||
private
|
||||
|
||||
# Staff (show?) baixa qualquer holerite. O motorista baixa só o PRÓPRIO — o PDF
|
||||
# já é filtrado pelo nome dele, então não há vazamento de dados de terceiros.
|
||||
def autorizar_holerite!(motorista_nome)
|
||||
if current_user.motorista?
|
||||
raise Pundit::NotAuthorizedError unless motorista_nome.to_s.casecmp?(current_user.nome.to_s)
|
||||
skip_authorization
|
||||
else
|
||||
authorize @consolidacao, :show?
|
||||
end
|
||||
end
|
||||
|
||||
def set_consolidacao
|
||||
@consolidacao = Consolidacao.find(params[:id])
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user