package com.ese.beans;
import com.ese.model.db.StaffModel;
import com.ese.model.view.UserView;
import com.ese.service.UserManagementService;
import com.ese.service.security.UserDetail;
import com.ese.utils.FacesUtil;
import com.ese.utils.NamesUtil;
import com.ese.utils.Utils;
import lombok.Getter;
import lombok.Setter;
import org.springframework.security.core.context.SecurityContextHolder;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
@Getter
@Setter
@ViewScoped
@ManagedBean(name = "headerBean")
public class HeaderBean extends Bean {
private static final long serialVersionUID = 4112578634029874840L;
@ManagedProperty("#{userManagementService}") private UserManagementService userManagementService;
private UserDetail userDetail;
private String fullName;
private StaffModel staffModel;
private String password;
private UserView userView;
@PostConstruct
private void onCreation(){
log.debug("onCreation().");
if(preLoad()){
init();
}
}
private void init(){
userDetail = getUser();
log.debug("userDetail {}", userDetail.toString());
onLoadUserView();
if(!Utils.isNull(userDetail)){
fullName = ""+userDetail.getFullName();
}
}
private void onLoadUserView(){
userView = userManagementService.getUserName(userDetail.getUserName());
userView.setPassword("");
}
public void onClickSave(){
System.out.println("onClickSave()");
userManagementService.onUpdataeUserAccess(userView);
init();
showDialogUpdated();
}
public void onClickEdit(){
FacesUtil.redirect(NamesUtil.EDIT_PROFILE_PAGE.getName());
}
public String logout(){
FacesContext.getCurrentInstance().getExternalContext().invalidateSession();
SecurityContextHolder.clearContext();
return "loggedOut";
}
}