package org.jboss.seam.example.groovy.action;

import java.util.List;
import javax.persistence.EntityManager;

import static org.jboss.seam.ScopeType.SESSION;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Out;
import org.jboss.seam.example.groovy.model.User;

@Name("authenticator")
public class AuthenticatorAction
{
   @In EntityManager em;
   
   @Out(required=false, scope = SESSION)
   private User user;
   
   public boolean authenticate()
   {
      List results = em.createQuery("select u from User u where u.username=#{identity.username} and u.password=#{identity.password}")
            .getResultList();
      
      if ( results.size()==0 )
      {
         return false;
      }
      else
      {
         user = (User) results.get(0);
         return true;
      }
   }

}
