package org.beanfuse.webapp.security.action;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import org.apache.struts2.ServletActionContext;
import org.beanfuse.security.Group;
import org.beanfuse.security.Resource;
import org.beanfuse.security.User;
import org.beanfuse.security.menu.dao.MenuAuthorityDao;
import org.beanfuse.security.service.ResourceService;
public class SysMenuAction extends SecurityAction {
ResourceService resourceService;
MenuAuthorityDao menuAuthorityDao;
public String index() {
List<Resource> resources = resourceService.getResources();
put("resources", resources);
ServletActionContext.getResponse().setContentType("text/xml; charset=utf-8");
return forward();
}
public String user() {
String userName = get("uid");
List<User> users = entityService.load(User.class, "name", userName);
if (!users.isEmpty()) {
User user = users.get(0);
put("authorities", getMenuAuthorities(user));
}
return forward();
}
private Collection getMenuAuthorities(User user) {
if (null == user)
return Collections.EMPTY_LIST;
Set menuAuthorities = new HashSet();
if (null != user.getGroups()) {
for (Iterator it = user.getAllGroups().iterator(); it.hasNext();) {
List groupAuths = menuAuthorityDao.getMenuAuthorities(null,(Group) it.next(),-1,null);
menuAuthorities.addAll(groupAuths);
}
}
return menuAuthorities;
}
public void setResourceService(ResourceService resourceService) {
this.resourceService = resourceService;
}
public void setMenuAuthorityDao(MenuAuthorityDao menuAuthorityDao) {
this.menuAuthorityDao = menuAuthorityDao;
}
}