public ActionResult Index(String userId) { UserAuthUtil authUtil = new UserAuthUtil(); String opScope = ""; String[] roleInfo = authUtil.chkUserFuncAuth(Session["UserID"].ToString(), "~/UserMgr/"); if (roleInfo != null && roleInfo.Length == 1) { opScope = "1"; //roleId = roleInfo[1]; //funcType = roleInfo[2]; } ViewBag.opScope = opScope; /*---畫面下拉選單初始值---*/ SysCodeDao sysCodeDao = new SysCodeDao(); //啟用狀態 var isDisabledList = sysCodeDao.loadSelectList("IS_DISABLED"); ViewBag.isDisabledList = isDisabledList; //是否寄送MAIL var isMailList = sysCodeDao.loadSelectList("YN_FLAG"); ViewBag.isMailList = isMailList; //角色群組 var roleAuthTypeList = sysCodeDao.loadSelectList("ROLE_AUTH_TYPE"); ViewBag.roleAuthTypeList = roleAuthTypeList; //角色名稱 CodeRoleDao codeRoleDao = new CodeRoleDao(); var CodeRoleList = codeRoleDao.loadSelectList(); ViewBag.CodeRoleList = CodeRoleList; //異動人員 CodeUserDao codeUserDao = new CodeUserDao(); var CodeUserList = codeUserDao.loadSelectList(); ViewBag.CodeUserList = CodeUserList; if (userId != null) { UserMgrModel userMgrModel = new UserMgrModel(); userMgrModel.cUserID = userId; ViewBag.cUserID = userId; return(View(userMgrModel)); } else { return(View()); } }
public ActionResult userHis(String cUserID) { /*---畫面下拉選單初始值---*/ SysCodeDao sysCodeDao = new SysCodeDao(); //覆核狀態 var apprStatusList = sysCodeDao.loadSelectList("APPR_STATUS"); apprStatusList = new SelectList(apprStatusList .Where(x => x.Value != "4") .ToList(), "Value", "Text"); ViewBag.apprStatusList = apprStatusList; if (!"".Equals(StringUtil.toString(cUserID))) { UserMgrModel userMgrModel = new UserMgrModel(); userMgrModel.cUserID = cUserID; List <UserMgrModel> rows = qryUserData(userMgrModel); ViewBag.cUserID = cUserID; return(View(rows[0])); } else { return(View()); } }
public JsonResult LoadData(UserMgrModel userMgrModel) { List <UserMgrModel> rows = qryUserData(userMgrModel); CodeUserDao codeUserDao = new CodeUserDao(); procTrackLog(userMgrModel, codeUserDao, rows.Count); var jsonData = new { success = true, rows }; return(Json(jsonData, JsonRequestBehavior.AllowGet)); }
public UserMgrModel getUserOaData(UserMgrModel user, DB_INTRAEntities db) { V_EMPLY2 oaEmp = db.V_EMPLY2 .Where(x => x.USR_ID == user.cUserID).FirstOrDefault(); if (oaEmp != null) { if (!"".Equals(oaEmp.EMP_NO)) { user.cUserName = StringUtil.toString(oaEmp.EMP_NAME); user.cWorkUnitCode = StringUtil.toString(oaEmp.DPT_CD); user.cWorkUnitDesc = StringUtil.toString(oaEmp.DPT_NAME); } } return(user); }
/// <summary> /// 主頁面查詢紀錄至稽核軌跡 /// </summary> /// <param name="userMgrModel"></param> /// <param name="codeUserDao"></param> /// <param name="cnt"></param> public void procTrackLog(UserMgrModel userMgrModel, CodeUserDao codeUserDao, int cnt) { string strConn = DbUtil.GetDBTreasuryConnStr(); using (SqlConnection conn = new SqlConnection(strConn)) { conn.Open(); SqlTransaction transaction = conn.BeginTransaction("Transaction"); try { PIA_LOG_MAIN piaLog = new PIA_LOG_MAIN(); piaLog.TRACKING_TYPE = "A"; piaLog.ACCESS_ACCOUNT = Session["UserID"].ToString(); //piaLog.ACCOUNT_NAME = Session["UserName"].ToString(); piaLog.PROGFUN_NAME = "UserMgrController"; piaLog.ACCESSOBJ_NAME = "CodeUser"; piaLog.EXECUTION_TYPE = "Q"; piaLog.EXECUTION_CONTENT = codeUserDao.trackLogContent(userMgrModel); piaLog.AFFECT_ROWS = cnt; piaLog.PIA_OWNER1 = ""; piaLog.PIA_OWNER2 = ""; piaLog.PIA_TYPE = "0100000000"; PiaLogMainDao piaLogMainDao = new PiaLogMainDao(); piaLogMainDao.Insert(piaLog, conn, transaction); transaction.Commit(); } catch (Exception e) { transaction.Rollback(); logger.Error("[procTrackLog]其它錯誤:" + e.ToString()); } } }
/// <summary> /// 異動使用者資訊 /// </summary> /// <param name="userMgrModel"></param> /// <returns></returns> public JsonResult updateUser(UserMgrModel userMgrModel, List <CodeUserRoleModel> roleData, string execAction) { bool bUserChg = false; bool bRoleChg = false; CodeUserDao codeUserDao = new CodeUserDao(); CODE_USER userO = codeUserDao.qryUserByKey(userMgrModel.cUserID); if ("A".Equals(execAction)) { if (userO != null) { if (!"".Equals(StringUtil.toString(userO.USER_ID))) { return(Json(new { success = false, err = "使用者已存在系統,不可新增!!" }, JsonRequestBehavior.AllowGet)); } } bUserChg = true; } else { if (userO == null) { return(Json(new { success = false, err = "該使用者不存在系統!!" }, JsonRequestBehavior.AllowGet)); } else { if (StringUtil.toString(userMgrModel.isDisabled).Equals(StringUtil.toString(userO.IS_DISABLED)) && StringUtil.toString(userMgrModel.isMail).Equals(StringUtil.toString(userO.IS_MAIL)) && StringUtil.toString(userMgrModel.vMemo).Equals(StringUtil.toString(userO.MEMO)) ) { bUserChg = false; } else { bUserChg = true; } } } //比對是否有異動"角色授權" CodeUserRoleDao codeUserRoleDao = new CodeUserRoleDao(); List <CodeUserRoleModel> roleDataO = codeUserRoleDao.qryByUserID(userMgrModel.cUserID); List <CodeUserRoleModel> roleList = new List <CodeUserRoleModel>(); if (roleData != null) { foreach (CodeUserRoleModel role in roleData) { CodeUserRoleModel codeUserRoleModel = new CodeUserRoleModel(); codeUserRoleModel.userId = StringUtil.toString(userMgrModel.cUserID); codeUserRoleModel.roleId = StringUtil.toString(role.roleId); if (roleDataO.Exists(x => x.roleId == role.roleId)) { codeUserRoleModel.execAction = ""; } else { bRoleChg = true; codeUserRoleModel.execAction = "A"; } roleList.Add(codeUserRoleModel); } } foreach (CodeUserRoleModel oRole in roleDataO) { if (roleList != null) { if (!roleList.Exists(x => x.roleId == oRole.roleId)) { bRoleChg = true; CodeUserRoleModel codeUserRoleModel = new CodeUserRoleModel(); codeUserRoleModel.userId = StringUtil.toString(userMgrModel.cUserID); codeUserRoleModel.roleId = StringUtil.toString(oRole.roleId); codeUserRoleModel.execAction = "D"; roleList.Add(codeUserRoleModel); } } else { bRoleChg = true; CodeUserRoleModel codeUserRoleModel = new CodeUserRoleModel(); codeUserRoleModel.userId = StringUtil.toString(oRole.userId); codeUserRoleModel.roleId = StringUtil.toString(oRole.roleId); codeUserRoleModel.execAction = "D"; roleList.Add(codeUserRoleModel); } } if (bUserChg == false && bRoleChg == false) { return(Json(new { success = false, errors = "未異動畫面資料,將不進行修改覆核作業!!" }, JsonRequestBehavior.AllowGet)); } /*------------------ DB處理 begin------------------*/ string strConn = DbUtil.GetDBTreasuryConnStr(); using (SqlConnection conn = new SqlConnection(strConn)) { conn.Open(); SqlTransaction transaction = conn.BeginTransaction("Transaction"); try { AuthApprDao authApprDao = new AuthApprDao(); AUTH_APPR authAppr = new AUTH_APPR(); authAppr.AUTH_APLY_TYPE = "U"; authAppr.APPR_STATUS = "1"; authAppr.APPR_MAPPING_KEY = userMgrModel.cUserID; authAppr.CREATE_UID = Session["UserID"].ToString(); //新增"覆核資料檔" string aplyNo = authApprDao.insert(authAppr, conn, transaction); // 異動"使用者資料檔"資料狀態 if (!"A".Equals(execAction)) { Log log = new Log(); log.CFUNCTION = "使用者管理-修改"; log.CACTION = "U"; log.CCONTENT = codeUserDao.userLogContent(userO); LogDao.Insert(log, Session["UserID"].ToString()); userO.DATA_STATUS = "2"; userO.LAST_UPDATE_UID = Session["UserID"].ToString(); userO.LAST_UPDATE_DT = DateTime.Now; userO.FREEZE_UID = Session["UserID"].ToString(); userO.FREEZE_DT = DateTime.Now; int cnt = codeUserDao.Update(userO, conn, transaction); } //處理使用者資料檔的異動 if (bUserChg) { CodeUserHisDao codeUserHisDao = new CodeUserHisDao(); CODE_USER_HIS userHis = new CODE_USER_HIS(); userHis.APLY_NO = aplyNo; userHis.USER_ID = userMgrModel.cUserID; userHis.IS_DISABLED = userMgrModel.isDisabled; userHis.IS_MAIL = userMgrModel.isMail; userHis.MEMO = userMgrModel.vMemo; if (!"A".Equals(execAction)) { userHis.IS_DISABLED_B = userO.IS_DISABLED; userHis.IS_MAIL_B = userO.IS_MAIL; userHis.MEMO_B = userO.MEMO; userHis.EXEC_ACTION = "U"; } else { userHis.EXEC_ACTION = "A"; } codeUserHisDao.insert(userHis, conn, transaction); } //處理角色金庫設備資料檔的異動 if (bRoleChg) { CodeUserRoleHisDao codeUserRoleHisDao = new CodeUserRoleHisDao(); foreach (CodeUserRoleModel role in roleList) { codeUserRoleHisDao.insert(aplyNo, role, conn, transaction); //if (!"".Equals(role.execAction)) //{ // codeUserRoleHisDao.insert(aplyNo, role, conn, transaction); //} } } transaction.Commit(); /*------------------ DB處理 end------------------*/ return(Json(new { success = true, aplyNo = aplyNo })); } catch (Exception e) { transaction.Rollback(); logger.Error("[updateUser]其它錯誤:" + e.ToString()); return(Json(new { success = false, err = "其它錯誤,請洽系統管理員!!" }, JsonRequestBehavior.AllowGet)); } } }
/// <summary> /// 使用者資訊codeUser /// </summary> /// <param name="cUserID"></param> /// <returns></returns> public ActionResult detailUser(string userId) { /*---畫面下拉選單初始值---*/ SysCodeDao sysCodeDao = new SysCodeDao(); //啟用狀態 var isDisabledList = sysCodeDao.loadSelectList("IS_DISABLED"); ViewBag.isDisabledList = isDisabledList; //是否寄送MAIL var isMailList = sysCodeDao.loadSelectList("YN_FLAG"); ViewBag.isMailList = isMailList; //角色群組 var roleAuthTypeList = sysCodeDao.jqGridList("ROLE_AUTH_TYPE"); ViewBag.roleAuthTypeList = roleAuthTypeList; ////查詢使用者資訊 //CodeUserDao codeUserDao = new CodeUserDao(); //CODEUSER codeUser = codeUserDao.qryByKey(cUserID); ////查詢角色 CodeRoleDao codeRoleDao = new CodeRoleDao(); var roleStr = codeRoleDao.jqGridRoleList(""); ViewBag.roleList = roleStr; //將值搬給畫面欄位 UserMgrModel userMgrModel = new UserMgrModel(); if ("".Equals(StringUtil.toString(userId))) { ViewBag.bHaveData = false; return(View(userMgrModel)); } userMgrModel.cUserID = userId; List <UserMgrModel> rows = qryUserData(userMgrModel); if (rows.Count > 0) { ViewBag.bHaveData = true; //return RedirectToAction("Index", "Home"); return(View(rows[0])); } else { ViewBag.bHaveData = false; return(View(userMgrModel)); } }
private List <UserMgrModel> qryUserData(UserMgrModel userMgrModel) { CodeUserDao codeUserDao = new CodeUserDao(); List <UserMgrModel> rows = codeUserDao.qryUserMgr(userMgrModel); using (DB_INTRAEntities db = new DB_INTRAEntities()) { OaEmpDao oaEmpDao = new OaEmpDao(); for (int i = 0; i < rows.Count; i++) { rows[i] = oaEmpDao.getUserOaData(rows[i], db); Dictionary <string, string> userNameMap = new Dictionary <string, string>(); if (!"".Equals(StringUtil.toString(rows[i].cCrtUserID))) { if (!"".Equals(rows[i].cCrtUserID)) { if (!userNameMap.ContainsKey(rows[i].cCrtUserID)) { userNameMap = oaEmpDao.qryUsrName(userNameMap, rows[i].cCrtUserID, db); } rows[i].cCrtUserID = rows[i].cCrtUserID + " " + userNameMap[rows[i].cCrtUserID]; } } if (!"".Equals(StringUtil.toString(rows[i].cUpdUserID))) { if (!"".Equals(rows[i].cUpdUserID)) { if (!userNameMap.ContainsKey(rows[i].cUpdUserID)) { userNameMap = oaEmpDao.qryUsrName(userNameMap, rows[i].cUpdUserID, db); } rows[i].cUpdUserID = rows[i].cUpdUserID + " " + userNameMap[rows[i].cUpdUserID]; } } if (!"".Equals(StringUtil.toString(rows[i].apprUid))) { if (!"".Equals(rows[i].apprUid)) { if (!userNameMap.ContainsKey(rows[i].apprUid)) { userNameMap = oaEmpDao.qryUsrName(userNameMap, rows[i].apprUid, db); } rows[i].apprUid = rows[i].apprUid + " " + userNameMap[rows[i].apprUid]; } } if (!"".Equals(StringUtil.toString(rows[i].frezzeUid))) { if (!"".Equals(rows[i].frezzeUid)) { if (!userNameMap.ContainsKey(rows[i].frezzeUid)) { userNameMap = oaEmpDao.qryUsrName(userNameMap, rows[i].frezzeUid, db); } rows[i].frezzeUid = rows[i].frezzeUid + " " + userNameMap[rows[i].frezzeUid]; } } } } bool bcUserName = StringUtil.isEmpty(userMgrModel.cUserName); if (!bcUserName) { rows = rows.Where(x => x.cUserName == userMgrModel.cUserName).ToList(); } return(rows); }
/// <summary> /// (查詢)稽核軌跡的執行細項資訊content /// </summary> /// <param name="userMgrModel"></param> /// <returns></returns> public string trackLogContent(UserMgrModel userMgrModel) { String content = ""; if (!StringUtil.isEmpty(userMgrModel.cUserID)) { content += "cUserID = " + userMgrModel.cUserID + "|"; } if (!StringUtil.isEmpty(userMgrModel.cUserName)) { String userName = ""; if (userMgrModel.cUserName.Trim().Length > 1) { userName = userMgrModel.cUserName.Substring(0, 1) + "O" + userMgrModel.cUserName.Substring(2, userMgrModel.cUserName.Length - 2); } else { userName = userMgrModel.cUserName; } content += "cUserName = "******"|"; } if (!StringUtil.isEmpty(userMgrModel.isDisabled)) { content += "isDisabled = " + userMgrModel.isDisabled + "|"; } if (!StringUtil.isEmpty(userMgrModel.isMail)) { content += "isMail = " + userMgrModel.isMail + "|"; } if (!StringUtil.isEmpty(userMgrModel.codeRole)) { content += "codeRole = " + userMgrModel.codeRole + "|"; } if (!StringUtil.isEmpty(userMgrModel.cUpdUserID)) { content += "cUpdUserID = " + userMgrModel.cUpdUserID + "|"; } if (!StringUtil.isEmpty(userMgrModel.cUpdDateB)) { content += "cUpdDateB = " + userMgrModel.cUpdDateB + "|"; } if (!StringUtil.isEmpty(userMgrModel.cUpdDateE)) { content += "cUpdDateE = " + userMgrModel.cUpdDateE + "|"; } return(content); }
/// <summary> /// 使用者維護查詢 /// </summary> /// <param name="userMgrModel"></param> /// <returns></returns> public List <UserMgrModel> qryUserMgr(UserMgrModel userMgrModel) { bool bcUserID = StringUtil.isEmpty(userMgrModel.cUserID); bool bcUserName = StringUtil.isEmpty(userMgrModel.cUserName); bool bisDisabled = StringUtil.isEmpty(userMgrModel.isDisabled); bool bisMail = StringUtil.isEmpty(userMgrModel.isMail); //bool bcBelongUnitCode = StringUtil.isEmpty(userMgrModel.cBelongUnitCode); //bool bcBelongUnitSeq = StringUtil.isEmpty(userMgrModel.cBelongUnitSeq); bool broleAuthType = StringUtil.isEmpty(userMgrModel.roleAuthType); bool bcodeRole = StringUtil.isEmpty(userMgrModel.codeRole); bool bcUpdUserID = StringUtil.isEmpty(userMgrModel.cUpdUserID); bool bcUpdDateB = StringUtil.isEmpty(userMgrModel.cUpdDateB); bool bcUpdDateE = StringUtil.isEmpty(userMgrModel.cUpdDateE); DateTime sB = DateTime.Now.AddDays(1); if (!bcUpdDateB) { sB = Convert.ToDateTime(userMgrModel.cUpdDateB); } DateTime sE = DateTime.Now.AddDays(1); if (!bcUpdDateE) { sE = Convert.ToDateTime(userMgrModel.cUpdDateE); } sE = sE.AddDays(1); List <UserMgrModel> rows = new List <UserMgrModel>(); using (new TransactionScope( TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = IsolationLevel.ReadUncommitted })) { using (dbTreasuryEntities db = new dbTreasuryEntities()) { rows = (from user in db.CODE_USER join codeFlag in db.SYS_CODE.Where(x => x.CODE_TYPE == "IS_DISABLED") on user.IS_DISABLED equals codeFlag.CODE into psFlag from xFlag in psFlag.DefaultIfEmpty() join codeMail in db.SYS_CODE.Where(x => x.CODE_TYPE == "YN_FLAG") on user.IS_DISABLED equals codeMail.CODE into psMail from xMail in psMail.DefaultIfEmpty() join userRole in db.CODE_USER_ROLE on user.USER_ID equals userRole.USER_ID into psUserRole from xUserRole in psUserRole.DefaultIfEmpty() join role in db.CODE_ROLE on xUserRole.ROLE_ID equals role.ROLE_ID into psRole from xRole in psRole.DefaultIfEmpty() join codeStatus in db.SYS_CODE.Where(x => x.CODE_TYPE == "DATA_STATUS") on user.DATA_STATUS equals codeStatus.CODE into psStatus from xStatus in psStatus.DefaultIfEmpty() where 1 == 1 & (bcUserID || (user.USER_ID == userMgrModel.cUserID.Trim())) & (bisDisabled || (user.IS_DISABLED == userMgrModel.isDisabled.Trim())) & (bisMail || (user.IS_MAIL == userMgrModel.isMail.Trim())) & (broleAuthType || (xRole.ROLE_AUTH_TYPE == userMgrModel.roleAuthType.Trim())) & (bcodeRole || (xUserRole.ROLE_ID == userMgrModel.codeRole.Trim())) & (bcUpdUserID || (user.LAST_UPDATE_UID == userMgrModel.cUpdUserID.Trim())) & (bcUpdDateB || user.LAST_UPDATE_DT >= sB) & (bcUpdDateE || user.LAST_UPDATE_DT <= sE) select new UserMgrModel() { isDisabled = user.IS_DISABLED, isDisabledDesc = xFlag.CODE_VALUE.Trim(), isMail = user.IS_MAIL, isMailDesc = xMail.CODE_VALUE.Trim(), vMemo = user.MEMO.Trim(), cUserID = user.USER_ID.Trim(), cCrtUserID = user.CREATE_UID.Trim(), cCrtDate = user.CREATE_DT == null ? "" : SqlFunctions.DateName("year", user.CREATE_DT) + "/" + SqlFunctions.DatePart("m", user.CREATE_DT) + "/" + SqlFunctions.DateName("day", user.CREATE_DT).Trim() + " " + SqlFunctions.DateName("hh", user.CREATE_DT).Trim() + ":" + SqlFunctions.DateName("n", user.CREATE_DT).Trim() + ":" + SqlFunctions.DateName("s", user.CREATE_DT).Trim(), cUpdUserID = user.LAST_UPDATE_UID.Trim(), cUpdDate = user.LAST_UPDATE_DT == null ? "" : SqlFunctions.DateName("year", user.LAST_UPDATE_DT) + "/" + SqlFunctions.DatePart("m", user.LAST_UPDATE_DT) + "/" + SqlFunctions.DateName("day", user.LAST_UPDATE_DT).Trim() + " " + SqlFunctions.DateName("hh", user.LAST_UPDATE_DT).Trim() + ":" + SqlFunctions.DateName("n", user.LAST_UPDATE_DT).Trim() + ":" + SqlFunctions.DateName("s", user.LAST_UPDATE_DT).Trim(), apprUid = user.APPR_UID == null ? "" : user.APPR_UID.Trim(), apprDt = user.APPR_DT == null ? "" : SqlFunctions.DateName("year", user.APPR_DT) + "/" + SqlFunctions.DatePart("m", user.APPR_DT) + "/" + SqlFunctions.DateName("day", user.APPR_DT).Trim() + " " + SqlFunctions.DateName("hh", user.APPR_DT).Trim() + ":" + SqlFunctions.DateName("n", user.APPR_DT).Trim() + ":" + SqlFunctions.DateName("s", user.APPR_DT).Trim(), frezzeUid = user.FREEZE_UID == null ? "": user.FREEZE_UID.Trim(), frezzeDt = user.FREEZE_DT == null ? "" : SqlFunctions.DateName("year", user.FREEZE_DT) + "/" + SqlFunctions.DatePart("m", user.FREEZE_DT) + "/" + SqlFunctions.DateName("day", user.FREEZE_DT).Trim() + " " + SqlFunctions.DateName("hh", user.FREEZE_DT).Trim() + ":" + SqlFunctions.DateName("n", user.FREEZE_DT).Trim() + ":" + SqlFunctions.DateName("s", user.FREEZE_DT).Trim(), dataStatus = user.DATA_STATUS, dataStatusDesc = (xStatus == null ? String.Empty : xStatus.CODE_VALUE) }).Distinct().OrderBy(d => d.cUserID).ToList <UserMgrModel>(); } } return(rows); }