123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- /***************************************************
- * Copyright 2009-11-25, -sun,All rights reserved.
- * Create date : 2009-11-25
- * Author : sun
- **************************************************/
- package com.sinosoft.lz.system.right.role;
- import java.util.ArrayList;
- import java.util.List;
- import org.apache.commons.logging.Log;
- import org.apache.commons.logging.LogFactory;
- import com.persistence.service.PersistenceFactory;
- import com.persistence.service.SysPersistence;
- import com.persistence.service.exception.PersistenceException;
- import com.sysmodel.datamodel.xmlmodel.ModelFactory;
- import com.sysmodel.datamodel.xmlmodel.able.MdpConstant;
- import com.sysmodel.datamodel.xmlmodel.able.SysModel;
- // TODO: Auto-generated Javadoc
- /**
- * The Class RoleImpl.
- */
- public class RoleImpl implements Roleable{
- /*
- * (non-Javadoc)
- *
- * @see
- * com.sinosoft.lz.system.right.role.Roleable#getAllRoleByUserId(java.lang
- * .String, boolean)
- */
- public ArrayList<String[]> getAllRoleByUserId(String userId, boolean isAssign)
- throws PersistenceException {
- StringBuffer sbsql = new StringBuffer(
- "SELECT Role_ID,Role_Name,Role_Type FROM SYS_ROLE where 1=1 ");
- if (!userId.equals("")) {
- if (isAssign) {
- sbsql.append(" and Role_ID in (select t.Role_ID from SYS_USER_ROLE_REL t ");
- sbsql.append(" where t.User_ID='" + userId + "')");
- } else if (!isAssign) {
- sbsql.append(" and Role_ID not in (select t.Role_ID from SYS_USER_ROLE_REL t ");
- sbsql.append(" where t.User_ID='" + userId + "')");
- }
- }
- sbsql.append(" ORDER BY Role_Type");
- ArrayList<String[]> rs = persistence.getSearchResult(886, sbsql.toString());
- // 1 没有选中的 2选中的
- StringBuffer strList = new StringBuffer();
- String[] element = null;
- for (int i = 0; i < rs.size(); i++) {
- element = rs.get(i);
- element[2] = element[2] == null ? "" : element[2].trim();
- // log.info("Role_Type = " + element[2]);
- if (element[2].equals("0"))
- element[1] = "『菜单模块角色』" + element[1];
- if (element[2].equals("1"))
- element[1] = "(事件查看角色)" + element[1];
- if (element[2].equals("2"))
- element[1] = "《路网监控角色》" + element[1];
- if (element[2].equals("3"))
- element[1] = "【对象操作角色】" + element[1];
- if (element[2].equals("4"))
- element[1] = "<病害处理角色>" + element[1];
- strList.append(" <option value=\"").append(element[0]).append("\">").append(element[1])
- .append("</option>\n");
- element = null;
- }
- return rs;
- }
- /*
- * (non-Javadoc)
- *
- * @see
- * com.sinosoft.lz.system.right.role.Roleable#getRoleByType(java.lang.String
- * )
- */
- public List<String[]> getRoleByType(String type) throws PersistenceException {
- String strSql = "SELECT Role_ID,Role_Name FROM SYS_ROLE where Role_Type = '" + type
- + "' ORDER BY FD_OBJECTID";
- log.info("根据角色类型获得所有角色对象集合" + strSql);
- return persistence.getSearchResult(886, strSql);
- }
- /*
- * (non-Javadoc)
- *
- * @see
- * com.sinosoft.lz.system.right.role.Roleable#getRoleFunctionByType(java
- * .lang.String)
- */
- public List<String[]> getRoleFunctionByType(String type) {
- log.info("角色类型" + type);
- List<String[]> result = new ArrayList<String[]>();
- // "2" 监控服务
- if (type.equals("2")) {
- MdpConstant constant = sysmodel.getMdpConstantByName("BM$_MonitorService");
- result = constant.getAllNode();
- }
- return result;
- }
- /*
- * (non-Javadoc)
- *
- * @see
- * com.sinosoft.lz.system.right.role.Roleable#isFunctionInRole(java.lang
- * .String, java.lang.String)
- */
- public boolean isFunctionInRole(String roleId, String functionId) throws PersistenceException {
- String sql = "select count(*) from SYS_ROLE_RIGHT_REL t where t.Role_ID='" + roleId
- + "' and t.Right_ID='" + functionId + "'";
- // log.info(sql);
- int i = persistence.getFunctionNumber(99, sql);
- if (i > 0) {
- return true;
- }
- return false;
- }
- /** The sysmodel. */
- private static SysModel sysmodel = ModelFactory.getSysmodel();
- /** The persistence. */
- private static SysPersistence persistence = PersistenceFactory.getInstance(sysmodel);
- /** The log. */
- private static Log log = LogFactory.getLog(RoleImpl.class);
- /**
- * 为了构造JUNIT单元测试
- *
- * @param persistence
- */
- @SuppressWarnings("static-access")
- public void setPersistence(SysPersistence persistence) {
- this.persistence = persistence;
- }
- }
|