Class XadmViewModel
java.lang.Object
br.com.xadm.comum.seguranca.XadmViewModel
- All Implemented Interfaces:
io.micronaut.views.model.ViewModelProcessor<Map<String,Object>, io.micronaut.http.HttpRequest<?>>
@Singleton
@Requires(property="xadm.views.app-nome")
public class XadmViewModel
extends Object
implements io.micronaut.views.model.ViewModelProcessor<Map<String,Object>, io.micronaut.http.HttpRequest<?>>
ViewModelProcessor de referência da casa: injeta em TODO model de view server-render os
globais que o kit/layout.jte (decisão 0025) espera — identidade da casa
(appNome/clienteXadm), sessão (currentUserEmail/currentUserName/
csrfToken, dos atributos populados pelo SessionAuthenticationFetcher),
authEnabled (do AuthSettings, controla o bloco "Sair" do navbar) e
appVersao (de VersaoInfo.versaoAtual() — o kit/headerRight.jte já
renderiza a chave sob @if(appVersao != null), e a lib já tem o valor; app que escreve um
processor local para isso está buscando o que a lib já sabe).
Mora aqui (não no xadm-comum-web) porque lê AuthSupport/AuthSettings —
e seguranca já depende de comum-web, então o inverso seria circular.
Opt-in (item 124 — bean de lib em recurso global cede por default, ativa por
presença): só entra no contexto se o app define xadm.views.app-nome. O app que adota apaga o
seu GlobalViewModel local e passa a configurar por property. Gates de UI específicos
(ex.: crudWriteAllowed/showInternalMenus) NÃO entram aqui — são política do app.
Tolera model imutável (item 115): controller que devolve Map.of(...)
(ex.: a tela /admin/mensageria da xadm-mensageria) faria o put estourar
UnsupportedOperationException; aqui copia para um map mutável e setModel, em vez de 500.
-
Constructor Summary
ConstructorsConstructorDescriptionXadmViewModel(String appNome, @Nullable String clienteXadm, AuthSettings authSettings) -
Method Summary
-
Constructor Details
-
XadmViewModel
@Inject public XadmViewModel(@Value("${xadm.views.app-nome}") String appNome, @Value("${cliente:}") @Nullable @Nullable String clienteXadm, AuthSettings authSettings)
-
-
Method Details
-
process
-