Package com.nsharmon.iTranslate.beans

Source Code of com.nsharmon.iTranslate.beans.Identity

package com.nsharmon.iTranslate.beans;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.google.appengine.api.users.UserService;
import com.google.appengine.api.users.UserServiceFactory;
import com.nsharmon.iTranslate.dao.EMF;
import com.nsharmon.iTranslate.dao.entities.User;

@ManagedBean
@SessionScoped
public class Identity {
  private User user = null;
 
  public String getLogoutUrl() {
    UserService userService = UserServiceFactory.getUserService();
    return userService.createLogoutURL("/index.jsf");
  }

  public String getLoginUrl() {
    ExternalContext ctx = FacesContext.getCurrentInstance()
        .getExternalContext();
    HttpServletRequest request = (HttpServletRequest) ctx.getRequest();
    HttpServletResponse response = (HttpServletResponse) ctx.getResponse();

    UserService userService = UserServiceFactory.getUserService();
    return userService.createLoginURL(response.encodeURL(request
        .getRequestURI()));
  }
 
  public User getCurrentUser() {
    if(user == null && isLoggedIn()) {
      UserService userService = UserServiceFactory.getUserService();
      com.google.appengine.api.users.User gUser = userService.getCurrentUser();
     
      user = loadUser(gUser);
    }
    return user;
  }
 
  private User loadUser(com.google.appengine.api.users.User gUser) {
    EntityManager em = EMF.createEntityManager();
    Query q = em.createQuery("SELECT u FROM User u WHERE u.userId = ?1");
    q.setParameter(1, gUser.getUserId());
   
    User user = (User)q.getSingleResult();
    if(user == null) {
      user = new User();
      user.setUserId(gUser.getUserId());
    }   
    if(user.getId() == null) {
      em.persist(user);
   
    em.close();   
    return user;
  }

  public boolean isLoggedIn() {
    UserService userService = UserServiceFactory.getUserService();
    return userService.isUserLoggedIn();
  }
}
TOP

Related Classes of com.nsharmon.iTranslate.beans.Identity

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.