AccountView.java 1.79 KB
package fi.insomnia.bortal.view;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.ListDataModel;

import fi.insomnia.bortal.beans.AccountEventBeanLocal;
import fi.insomnia.bortal.beans.UserBeanLocal;
import fi.insomnia.bortal.enums.Permission;
import fi.insomnia.bortal.enums.RolePermission;
import fi.insomnia.bortal.model.AccountEvent;
import fi.insomnia.bortal.model.User;

@ManagedBean(name = "accountView")
@SessionScoped
public class AccountView {

    // private AccountEventBeanLocal acbean;
    @EJB
    private UserBeanLocal userbean;
    @EJB
    private AccountEventBeanLocal accobean;
    private User user;
    private ListDataModel<AccountEvent> accountlist;
    private AccountEvent account;

    public void editSelf() {
        userbean.fatalNotLoggedIn();
        setUser(userbean.getCurrentUser());
    }

    public ListDataModel<AccountEvent> getAccountEvents() {
        if (!userbean.isCurrentUser(user)) {
            userbean.fatalPermission(Permission.ACCOUNT_MANAGEMENT, RolePermission.READ, "Tried to read read account events for user: ", user);
        }
        accountlist = new ListDataModel<AccountEvent>(getUser().getAccountEvents());
        return accountlist;
    }

    public String editAccount() {
        setAccount(accountlist.getRowData());
        return "/account/edit";
    }

    public void setAccount(AccountEvent account) {
        this.account = account;
    }

    public AccountEvent getAccount() {
        return account;
    }

    public void setUser(User user) {
        this.user = user;
    }

    public User getUser() {
        return user;
    }

    public void merge() {
        account = accobean.merge(account);
    }

    public void delete() {
        accobean.delete(account);
    }

}