[Logo] Mentawai Forum - Mentawai Web Framework
  [Search] Search   [Recent Topics] Recent Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 

Forum Read-Only! Check the new site and forum here!

Messages posted by: robertwgil  XML
Profile for robertwgil -> Messages posted by robertwgil [745] Go to Page: Previous  1, 2, 3 ... , 48, 49, 50 Next 
Author Message
Olá galera... não sei se realmente é um bug ou se esta seria realmente
a reação esperada mas acho que deveria ser analisada..
a versao que estou usando eh o Beta, mas creio que seja os mesmos
codigos para a versao estavel, o problema é
o seguinte:

TemplateManager
Code:
  public void configurePages() {
         
         Page base = new Page(".*", "template.jsp", ConventionController.class);
         base.setBlock("cabecalho", new Page("cabecalho.jsp"));
         base.setBlock("menuEsquerdo", new Page("menuEsquerdo.jsp"));
         base.setBlock("rodape", new Page("rodape.jsp"));
         add(base);
 }
 


com o template manager acima, ele monta apenas o cabeçalho,
deixando o resto para tras....
e só funciona apos eu colocar pelo menos uma pagina
especifica tipo:

Code:
     public void configurePages() {
         
         Page base = new Page(".*", "template.jsp", ConventionController.class);
         base.setBlock("cabecalho", new Page("cabecalho.jsp"));
         base.setBlock("menuEsquerdo", new Page("menuEsquerdo.jsp"));
         base.setBlock("rodape", new Page("rodape.jsp"));
         add(base);
         
         Page page = new Page("/Corpo", base);
         base.setBlock("cabecalho", new Page("cabecalho.jsp"));
         base.setBlock("menuEsquerdo", new Page("menuEsquerdo.jsp"));
         base.setBlock("rodape", new Page("rodape.jsp"));
         base.setBlock("corpo", new Page("corpo.jsp"));
     }
 


agora sim, colocando
http://localhost:8084/Template/corpo.page
.....
funciona normalmente o convention controller,
se eu colocar
http://localhost:8084/Template/cabecalho.page
ele carrega o cabeçalho onde fica o corpo ou seja
funciona normalmente usando o ConventionController.
cara simples pegar de um forward... assim:

Na pagina jsp.
Code:
 //Jeito mais correto
 Name: <mtw:input type="text" name="fullname" />
 
 // A Lá gambiarrinha...
 Name: <input type="text" name="fullname" value"<mtw:out value="fullname">" >
 


e na tua action coloca +- assim.

Code:
 output.setValue("fullname", meuDao.getMeuRegistroPorID(id) );
 


Acho q é isso.. t+
tambem acho meio estranho escrever o codigo dentro
da view.. jah penso c o designer quizer mudar o layout.
shaushua..
fods..
ué cara.. tem certeza que esse dados estao vindo corretamente do banco e preenchendo a list?
bom jah q esta todos pegando pra estudar.. hehe
manda ai pra mim tambem..
robertwgil@gmail.com
no init do APP manager adiciona os ioc.

Code:
 ioc("albumDAO", albumDAO.class);
 
 ioc("manager", AlbumManager.class);
 



na sua action AlbumAction coloca assim:

Code:
 // vai receber a injeção do ioc pela key manager
 
 private AlbumManager manager = null;
 
 // seria melhor uma interface pro AlbumManager.
 // private InterfaceAlbumManager manager = null;
 // pois vc poderia mudar facilmente o manager apenas no ioc
 // do appm colocando uma classe q implementasse a interface
 // InterfaceAlbumManager.
 
 


acho que seria isso.
Certo, com issu consigo proteger minhas actions.
mas e como protejo as paginas jsp?
a tag <mtw:hasAuthorization ...... > tambem funciona
com essa classe estendida?

como seria pra eu fazer tipo assim na jsp?

Code:
 if( tem atorização de write? ) {
    botao para cadastrar enable
 } else {
    botao para cadastrar disable
 }
 


Bom me corrijam se eu estiver errado, mas ser voce utilizar as tags
do mentawai <mtw:input > quando vier um new Forward, ele preencherá
automaticamente os campos com os valores, a quando voce chamar a
action a primeira vez, voce procura no seu banco o registro que vc quer
que apareça no form abaixo e coloca no output da action com o mesmo
nome do campo input que vc quer preencher dinamicamente..

ou ficaria melhor ainda com ajax! hehe...
HUMMMM... depois de ler nao apenas 2 vezes .. , consegui ver que
eu posso criar minha propria logica global de autorização extendo a
classe DynAuthorizationFilter e overriding o metodo isAuthorized,
e se minha action implementar a interface Authorizable
eu coloca a lógica de validação dentro da propria action
com o método authorize.... acho que é isso..

se for isso dexa eu ir pra proxima duvida.. ta ok,
agora eu nao sei direito ( por ser novato em Mentawai ) como funciona
esses entradas de paramentros dos metodos, tipo

Code:
public boolean authorize(String innerAction, Object user, List groups);
 
 // e o outro metodo
 
 public boolean isAuthorized(Action action, String actionName, String innerAction, Object user, List userGroups) {} 
 


e como seria a aplicação do filtro? assim?
Code:
 ac.addFilter(new MinhaClasseEstendidaDeDynAuthorizationFilter());
 


precisava mesmo era de um código exemplo, tipo os que estao no site,
aqueles consegui entender todos.

Obrigado pela Atenção.. T+
Eithia... parece mais complicado que imaginava..
achei esse post no forum apenas,
http://forum.mentaframework.org/posts/list/758.page

mas nao consegui entender muita coisa, ainda mais que sou
novato no mentawai..
:/
pqp.... jah ta pronto o filterFirst?! ta loco.. num deu nem tempo de eu ir almoçar.. hsaushua...
parabens saoj!!!
beleza darei uma olhada.
flw
Ok deixa eu ver se eu entendi.
por exemplo, tenho quatro botoes de cadastro e quatro usuarios um podendo
usar um botao de cadastro expecifico;

botao1 ( somente usuario MARIA pode usar )
botao2 ( somente usuario JSILVA pode usar )
botao3 ( somente usuario FULANO pode usar )
botao4 ( somente usuario CICLANO pode usar )

Code:
         Group writeBotao1 = new Group("writeBotao1");
         users.addPermission("writeBotao");
         AuthorizationManager.addGroup(writeBotao1);
 
         Group writeBotao2 = new Group("writeBotao2");
         users.addPermission("writeBotao");
         AuthorizationManager.addGroup(writeBotao2);
 
         Group writeBotao3 = new Group("writeBotao3");
         users.addPermission("writeBotao");
         AuthorizationManager.addGroup(writeBotao3);
 
         Group writeBotao4 = new Group("writeBotao4");
         users.addPermission("writeBotao");
         AuthorizationManager.addGroup(writeBotao4);
 

no login fazer algo tipo assim:
Code:
         String user = input.getStringValue("username");
         String pass = input.getStringValue("password");
 
   // Códigos de autenticação aqui.....
 
         setUserSession(user);
         List grupos = new userDao().getGroupsOfUser("MARIA");
         setUserGroups( grupos );
 

e na minha pagina .jsp colocar assim
Code:
         <mtw:hasAuthorization groups="writeBotao1"> 
             <mtw:input type="text" value="botao1" blablabla>
          </mtw:hasAuthorization>
 
         <mtw:hasAuthorization groups="writeBotao2"> 
             <mtw:input type="text" value="botao2"  blablabla>
          </mtw:hasAuthorization>
 
         <mtw:hasAuthorization groups="writeBotao3"> 
             <mtw:input type="text" value="botao3"  blablabla>
          </mtw:hasAuthorization>
 
         <mtw:hasAuthorization groups="writeBotao4"> 
             <mtw:input type="text" value="botao4"  blablabla>
          </mtw:hasAuthorization>
 

dai no banco de dados eu crio uma tabela n:m
com os grupos que os usarios pertencem.

nao sei usar o negate no hasAuthorization.

mas seria algo assim mesmo? ou fiz uma bagunça?
dai cai ondi falei.. terei que criar varios grupos.
ou tem outra solução mais simples e nao vi?

Olá a todos, seguinte:
entendi o paradigma da autorização do mentawai, mas gostaria de saber se
consigo fazer algo assim;
group admin = read, write, delete
group usersPlus = read, write
group users = read

jsilva = users, userPlus
maria = users, userPlus

por exemplo tem uma parte da minha aplicacao que eu quero que
o usario "jsilva" , tenha acesso a escrita em um botao
de cadastro(1) por exemplo, por isso criei o grupo userPlus,
mas tem tambem a "maria" que quero que ela tenha escrita apenas em
outra parte da aplicação, botao cadastro(2), mas se a infeliz ir no botao de cadastro(1) ela tambem vai poder escrever . como resolver essa pendenga, criando varios grupos um para cada lugar da aplicacao?
se eu setar write no botao ou o grupo userPlus, da na mesma certo?
pois é, ai o bicho pega.

penso que a solução seria assim:
group botao1 = read, write
group botao2 = read, write
group users = read

jsilva = users, botao1
maria = users, botao2

mas ai seria foda, por que tinha que criar um grupo para cada
parte da aplicação, seria isso mesmo?

Obrigado.
Pois eh velo... eu vi lah no site e estava tentando fazer fungar.
mas nao consegui...
mas tem no demo a tree com os fontes.
fussei lah mas sou mto novato com java na web ainda..
to estudando agora.. rsrs..
flw
 
Profile for robertwgil -> Messages posted by robertwgil [745] Go to Page: Previous  1, 2, 3 ... , 48, 49, 50 Next 
Go to:   
Powered by JForum 2.1.6 © JForum Team