/* ================================================================== * Created [2009-4-27 下午11:32:55] by Jon.King * ================================================================== * TSS * ================================================================== * mailTo:jinpujun@hotmail.com * Copyright (c) Jon.King, 2009-2012 * ================================================================== */ package com.jinhe.tss.um.action; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.HashMap; import java.util.List; import java.util.Map; import com.jinhe.tss.component.support.web.webwork.PTActionSupport; import com.jinhe.tss.core.util.DateUtil; import com.jinhe.tss.core.web.dispaly.tree.LevelTreeParser; import com.jinhe.tss.core.web.dispaly.tree.TreeEncoder; import com.jinhe.tss.core.web.dispaly.xform.XFormEncoder; import com.jinhe.tss.um.UMConstants; import com.jinhe.tss.um.entity.Strategy; import com.jinhe.tss.um.service.IStrategyService; /** * <p> * 权限转授策略相关操作。 * 策略没有组,没有上下级关系,没有排序id * </p> */ public class StrategyAction extends PTActionSupport { private static final long serialVersionUID = 4201390207436477752L; private IStrategyService service; private Long groupId; private Long strategyId; private String rule2UserIds; private String rule2GroupIds; private String rule2RoleIds; private Integer disabled = UMConstants.FALSE; private Strategy strategy = new Strategy(); /** * 查找策略列表 * @param userId * @return */ public String getSubAuthorizeStrategys2Tree() { return print("RuleTree", new TreeEncoder(service.getStrategyByCreator())); } /** * <p> * 获取一个Strategy(策略)对象的明细信息、角色对策略的信息、策略对用户的信息、策略对用户组的信息 * </p> * @return String */ public String getSubAuthorizeStrategyInfo() { XFormEncoder ruleXFormEncoder; TreeEncoder ruleToGroupTree = null; TreeEncoder ruleToUserTree = null; TreeEncoder ruleToRoleTree = null; Map<String, Object> data; if (isCreateNew()) { // 新建策略 data = service.getStrategyInfo4Create(); Map<String, Object> map = new HashMap<String, Object>(); map.put("startDate", DateUtil.format(new Date())); // 默认的有效时间, 结束时间向后推迟7天 Calendar calendar = new GregorianCalendar(); calendar.add(UMConstants.STRATEGY_LIFE_TYPE, UMConstants.STRATEGY_LIFE_TIME); map.put("endDate", DateUtil.format(calendar.getTime())); ruleXFormEncoder = new XFormEncoder(UMConstants.STRATEGY_XFORM_TEMPLET_PATH, map); } else { // 编辑策略 data = service.getStrategyInfo4Update(strategyId); ruleXFormEncoder = new XFormEncoder(UMConstants.STRATEGY_XFORM_TEMPLET_PATH, (Strategy) data.get("RuleInfo")); ruleToGroupTree = new TreeEncoder(data.get("Rule2GroupExistTree")); ruleToUserTree = new TreeEncoder(data.get("Rule2UserExistTree")); ruleToRoleTree = new TreeEncoder(data.get("Rule2RoleExistTree")); } TreeEncoder groupsTreeEncoder = new TreeEncoder(data.get("Rule2GroupTree"), new LevelTreeParser()); groupsTreeEncoder.setNeedRootNode(false); TreeEncoder rolesTreeEncoder = new TreeEncoder(data.get("Rule2RoleTree"), new LevelTreeParser()); rolesTreeEncoder.setNeedRootNode(false); return print(new String[]{"RuleInfo", "Rule2GroupTree", "Rule2RoleTree", "Rule2GroupExistTree", "Rule2UserExistTree", "Rule2RoleExistTree"}, new Object[]{ruleXFormEncoder, groupsTreeEncoder, rolesTreeEncoder, ruleToGroupTree, ruleToUserTree, ruleToRoleTree}); } /** * <p> * 修改一个Strategy对象的明细信息、策略对用户信息、策略对用户组、角色对策略的信息 * </p> * @return String */ public String saveSubAuthorizeStrategy() { service.saveStrategy(strategy, rule2UserIds, rule2GroupIds, rule2RoleIds); return printSuccessMessage(); } /** * <p> * 根据用户组id查找用户列表 * 还要通过权限过滤 * </p> * @return */ public String getUsersByGroupId(){ List<?> list = service.getUsersByGroupId(groupId); return print("Group2UserListTree", new TreeEncoder(list)); } /** * <p> * 删除策略 * </p> * @return */ public String delete(){ service.deleteStrategy(strategyId); return printSuccessMessage(); } /** * <p> * 停用/启用策略 * </p> * @return */ public String disable(){ service.disable(strategyId, disabled); return printSuccessMessage(); } public void setService(IStrategyService service) { this.service = service; } public void setGroupId(Long groupId) { this.groupId = groupId; } public void setDisabled(Integer disabled) { this.disabled = disabled; } public Strategy getStrategy() { return strategy; } public void setRule2GroupIds(String rule2GroupIds) { this.rule2GroupIds = rule2GroupIds; } public void setRule2RoleIds(String rule2RoleIds) { this.rule2RoleIds = rule2RoleIds; } public void setRule2UserIds(String rule2UserIds) { this.rule2UserIds = rule2UserIds; } public void setStrategyId(Long strategyId) { this.strategyId = strategyId; } }