Preciso usar a propriedade rendered de um commandButton que esteja dentro do dataTable. Para retornar true irá depender se:
1 - O usuário do sistema tem autoridade pra remover pessoas ou;
2 - Se quem cadastrou a pessoa o fez em até 24 horas.
Da forma que estou fazendo até que funciona mas gostaria de saber se essa é a melhor forma já que estou criando a propriedade boolean liberaRemocaoPessoa no model Pessoa e essa propriedade nunca armazenará nenhum valor no BD mas somente servirá para a view acessar e verificar as condições mencionadas acima.
Pessoa.java
@Entity
@Table(name = "pessoa")
public class Pessoa implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
private String fotoPerfil;
private String nome;
private String vulgo;
private String rg;
private String estadoRg;
private String cpf;
private Date nascimento;
private String nomeMae;
private String nomePai;
private String logradouro;
private String numero;
private String bairro;
private Cidade cidade;
private String estados;
private Date dataCadastro;
private List<Foto> foto;
private List<InfoCriminal> infoCriminal;
private Funcionario funcionario;
private List<Abordagem> listaAbordagem;
private boolean liberaRemocaoPessoa;
public boolean isLiberaRemocaoPessoa() {
if (this.getId() != null) {
Calendar dataAtual = Calendar.getInstance();
Calendar dataLiberacao = Calendar.getInstance();
dataLiberacao.setTimeInMillis(getDataCadastro().getTime());
dataLiberacao.add(Calendar.HOUR_OF_DAY, +24);
if (this.funcionario.getUsuarioLogin().getNivelAutoridade().isRemovePessoa()
|| dataLiberacao.after(dataAtual)) {
liberaRemocaoPessoa = true;
}
}
return liberaRemocaoPessoa;
}
view.xhtml
<p:commandButton id="btnDeletaRegistro" update="btnDeletaRegistro"
action="#{consultaPessoasCompletaBean.excluir}" value="Excluir"
rendered="#{pessoa.liberaRemocaoPessoa}">
<f:setPropertyActionListener value="#{pessoa}"
target="#{consultaPessoasCompletaBean.modelSelecionado}" />
<p:confirm header="Confirmação" message="Deseja exluir?"
icon="pi pi-exclamation-triangle" />
</p:commandButton>
