package org.brixcms.plugin.usermgmt.user.admin;
import java.util.ArrayList;
import java.util.List;
import org.apache.wicket.markup.html.panel.Panel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.ResourceModel;
import org.brixcms.auth.Action.Context;
import org.brixcms.plugin.jpa.web.admin.ManageEntityTabFactory;
import org.brixcms.plugin.usermgmt.user.User;
import org.brixcms.plugin.usermgmt.user.UserPlugin;
import org.brixcms.web.tab.CachingAbstractTab;
import org.brixcms.web.tab.IBrixTab;
/**
* @author dan.simko@gmail.com
*/
public class ManageUserTabFactory implements ManageEntityTabFactory<User> {
@Override
public List<IBrixTab> getManageNodeTabs(IModel<User> model) {
return getTabs(model);
}
@SuppressWarnings("serial")
private static List<IBrixTab> getTabs(final IModel<User> model) {
List<IBrixTab> tabs = new ArrayList<IBrixTab>();
tabs.add(new CachingAbstractTab(new ResourceModel("view", "View")) {
@Override
public Panel newPanel(String panelId) {
return new ViewTab(panelId, model);
}
@Override
public boolean isVisible() {
return UserPlugin.get().canViewEntity(model.getObject(), Context.ADMINISTRATION);
}
});
tabs.add(new CachingAbstractTab(new ResourceModel("roles", "Roles")) {
@Override
public Panel newPanel(String panelId) {
return new UserRolesTab(panelId, model);
}
});
return tabs;
}
}