Ticket #2467 (closed defeito: fixed)

Opened 8 years ago

Last modified 8 years ago

Erro ao trocar o status de um compromisso em agenda compartilhada

Reported by: cesar.vianna Owned by: rommelcysne
Priority: normal Milestone: Expresso 2.3.0
Component: Calendar Version:
Severity: média Keywords: TAG2.3.0.7, SS125676
Cc: WorkGroup: Centro de Testes

Description (last modified by cesar.vianna) (diff)

Módulo: Agenda Resumo: Ao trocar o status de um compromisso em agenda compartilhada, acusa erro Completa: Ao trocar o status de um compromisso acusa o erro em anexo. Para simular:

  • Usuário A compartilha agenda com B
  • Usuário A recebe um convite do usuário B e rejeita
  • Usuário B vê o staus de rejeitado e tenta trocar status para aceito.
  • É exibido o erro de SQL

Change History

comment:1 Changed 8 years ago by cesar.vianna

  • Description modified (diff)

comment:2 Changed 8 years ago by zapa

  • Owner changed from zapa to rommelcysne

comment:3 Changed 8 years ago by cesar.vianna

  • Keywords TAG2.3.0.7, SS125676 added; TAG2.3.0.7 removed

comment:4 Changed 8 years ago by rommelcysne

Problema originalmente relatado no Ticket #985.

O erro relatado no ticket em questão pode acontecer em todas as distribuições do Expresso e não depende de compartilhamento de agenda, basta que o módulo ExpressoMail? não seja carregado/aberto. Isto é conseguido definindo o valor da aplicação padrão diferente de ExpressoMail? e do Home do Expresso.

O problema ocorre porque em determinado ponto do código da Agenda, é esperado um valor contido numa variável $_SESSION do ExpressoMail?, só que se o módulo não tiver sido carregado, esse valor não existirá e será passado VAZIO, daí o erro na execução da query sql.

Como bônus, também foi detectado outro problema na alteração do status de agendamento numa agenda compartilhada.

Se o usuário que recebe as permissões em certa agenda tentar mudar o status de algum compromisso nessa agenda, o sistema não apresenta erro e aparentemente deu tudo certo, porém a ação não é efetivada no banco de dados.

Para corrigir os problemas, deve-se alterar as seguintes linhas nos respectivos arquivos. Problema do ticket #2467, arquivo class.uicalendar.inc.php, function set_action(), alterar a linha:

$eventparticipants? = Array($_SESSIONphpgw_info?expressomail?user?account_id? => $eventparticipants?[$_SESSIONphpgw_info?expressomail?user?account_id?]);

para:

$eventparticipants? = Array($GLOBALSphpgw_info?user?account_id? => $eventparticipants?[$GLOBALSphpgw_info?user?account_id?]);

Para o problema bônus, arquivo class.bocalendar.inc.php, function set_status(), alterar a linha:

$account_id = $GLOBALSphpgw_info?user?account_id?;

para:

$account_id = $this->owner;

Arquivos alterados:

  • calendar/inc/class.bocalendar.inc.php
  • calendar/inc/class.uicalendar.inc.php

Commit da revisão [5472]

comment:5 Changed 8 years ago by rommelcysne

  • Status changed from new to closed
  • Resolution set to fixed
Note: See TracTickets for help on using tickets.