/// <summary> /// 查詢該USE擁有的角色 C_USER_ROLE /// </summary> public void SelectUserRoleInfo(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { OleExec sfcdb = null; List <c_role1> RoleInfoLevel; T_C_ROLE RoleInfo; T_c_user_role GetUserID; string EMP_NO = Data["EMP_NO"].ToString(); try { sfcdb = this.DBPools["SFCDB"].Borrow(); RoleInfo = new T_C_ROLE(sfcdb, DBTYPE); GetUserID = new T_c_user_role(sfcdb, DBTYPE); string USERID = GetUserID.GetUserID(EMP_NO, sfcdb); string LoginUserID = GetUserID.GetUserID(this.LoginUser.EMP_NO, sfcdb); bool LoginEmp = false; if (USERID == LoginUserID) { LoginEmp = true; } RoleInfoLevel = RoleInfo.GetUserRolelist(USERID, LoginEmp, this.LoginUser.EMP_LEVEL, this.LoginUser.DPT_NAME, sfcdb); StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.Message = "用戶所擁有的角色獲取成功"; StationReturn.Data = RoleInfoLevel; this.DBPools["SFCDB"].Return(sfcdb); } catch (Exception e) { this.DBPools["SFCDB"].Return(sfcdb); throw e; } }
/// <summary> /// 根據用戶等級帶出該USER所能管理的角色 EMP_LEVEL=9 代表超級管理員 1代表可以管理本部門所有角色 0 代表普通用戶 /// </summary> public void SelectRoleByEmp_level(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { OleExec sfcdb = null; List <c_role_byempl> RoleInfoLevel; T_C_ROLE RoleInfo; T_c_user_role GetRoleID; string EMP_LEVEL = this.LoginUser.EMP_LEVEL; string FACTORY = this.LoginUser.FACTORY; string BU_NAME = this.LoginUser.BU; string DPT_NAME = this.LoginUser.DPT_NAME; string EDIT_EMP = Data["EDIT_EMP"].ToString(); try { sfcdb = this.DBPools["SFCDB"].Borrow(); RoleInfo = new T_C_ROLE(sfcdb, DBTYPE); GetRoleID = new T_c_user_role(sfcdb, DBTYPE); List <get_c_roleid> ROLE_ID = GetRoleID.GetRoleID(EDIT_EMP, sfcdb); RoleInfoLevel = RoleInfo.ManageRoleByUser(ROLE_ID, DPT_NAME, BU_NAME, FACTORY, EMP_LEVEL, sfcdb); StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.Message = "用戶所的角色獲取成功"; StationReturn.Data = RoleInfoLevel; this.DBPools["SFCDB"].Return(sfcdb); } catch (Exception e) { this.DBPools["SFCDB"].Return(sfcdb); throw e; } }
public static void InputEmpPrivchecker(MESStation.BaseClass.MESStationBase Station, MESStation.BaseClass.MESStationInput Input, List <R_Station_Action_Para> Paras) { if (Paras.Count == 0) { throw new Exception("參數數量不正確!"); } MESStationSession EMP_NOLoadPoint = Station.StationSession.Find(t => t.MESDataType == Paras[0].SESSION_TYPE && t.SessionKey == Paras[0].SESSION_KEY); if (EMP_NOLoadPoint == null) { EMP_NOLoadPoint = new MESStationSession() { MESDataType = "INPUTEMP", InputValue = Input.Value.ToString(), SessionKey = "1", ResetInput = Input }; Station.StationSession.Add(EMP_NOLoadPoint); } bool bPrivilege = false; string empNo = Input.Value.ToString(); //T_c_user cUser = new T_c_user(Station.SFCDB, DB_TYPE_ENUM.Oracle); //Row_c_user rUser = cUser.getC_Userbyempno(empNo, Station.SFCDB, DB_TYPE_ENUM.Oracle); T_c_user_role cUserRole = new T_c_user_role(Station.SFCDB, DB_TYPE_ENUM.Oracle); List <get_c_roleid> roleList = cUserRole.GetRoleID(empNo, Station.SFCDB); List <string> listRoleID = new List <string>(); foreach (var item in roleList) { listRoleID.Add(item.ROLE_ID); } T_C_ROLE_PRIVILEGE tRolePrivilege = new T_C_ROLE_PRIVILEGE(Station.SFCDB, DB_TYPE_ENUM.Oracle); List <c_role_privilegeinfobyemp> privilegeList = new List <c_role_privilegeinfobyemp>(); foreach (string item in listRoleID) { List <c_role_privilegeinfobyemp> tempList = tRolePrivilege.QueryRolePrivilege(item, Station.SFCDB); privilegeList.AddRange(tempList); } EMP_NOLoadPoint.Value = privilegeList; foreach (var item in privilegeList) { if (item.PRIVILEGE_NAME == Station.DisplayName) { bPrivilege = true; } } if (bPrivilege) { Station.AddMessage("MES00000001", new string[] { }, MESReturnView.Station.StationMessageState.Pass); } else { throw new Exception("no privilege"); } }
/// <summary> ///刪除用戶添加角色 DELETE C_USER_ROLE /// </summary> public void DeleteUserRolePrivilege(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { OleExec sfcdb = null; string DeleteSql = ""; T_c_user_role GetUserRole; string EMP_NO = Data["EMP_NO"].ToString(); // string[] ROLE_ID = Data["ROLE_ID"].ToString().Split(','); try { sfcdb = this.DBPools["SFCDB"].Borrow(); GetUserRole = new T_c_user_role(sfcdb, DBTYPE); string USER_ID = GetUserRole.GetUserID(EMP_NO, sfcdb); sfcdb.BeginTrain(); foreach (string item in Data["ROLE_ID"]) { string strroleid = item.Trim('\'').Trim('\"'); Row_c_user_role row = (Row_c_user_role)GetUserRole.GetObjByUserIDRoleID(USER_ID, strroleid, sfcdb, this.DBTYPE); DeleteSql += row.GetDeleteString(DBTYPE) + ";\n"; } DeleteSql = "begin\n" + DeleteSql + "end;"; sfcdb.ExecSQL(DeleteSql); sfcdb.CommitTrain(); StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.Message = "刪除成功"; sfcdb.CommitTrain(); this.DBPools["SFCDB"].Return(sfcdb); } catch (Exception e) { sfcdb.RollbackTrain(); this.DBPools["SFCDB"].Return(sfcdb); throw e; } }
public void LoadUserRoleInfo(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { OleExec sfcdb = null; T_c_user_role UserRoleInfo; List <c_load_userrole> UserRoleInfoList; string EMP_NO = Data["EMP_NO"].ToString(); try { sfcdb = this.DBPools["SFCDB"].Borrow(); UserRoleInfo = new T_c_user_role(sfcdb, DBTYPE); UserRoleInfoList = UserRoleInfo.QueryUserRoleInfo(EMP_NO, this.LoginUser.DPT_NAME, this.LoginUser.BU, this.LoginUser.FACTORY, this.LoginUser.EMP_LEVEL, sfcdb); StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.Message = "獲取成功"; StationReturn.Data = UserRoleInfoList; this.DBPools["SFCDB"].Return(sfcdb); } catch (Exception e) { sfcdb.RollbackTrain(); this.DBPools["SFCDB"].Return(sfcdb); throw e; } }
/// <summary> ///給用戶添加角色 INSERT C_USER_ROLE,并更新C_USER LEVEL_FLAG欄位的值 0表示普通用戶,1表示普通管理員,9 IT所有 /// </summary> public void AddUserRolePrivilege(Newtonsoft.Json.Linq.JObject requestValue, Newtonsoft.Json.Linq.JObject Data, MESStationReturn StationReturn) { OleExec sfcdb = null; string InsertSql = "", UpdateSql = ""; T_c_user_role UserRoler; T_c_user EmpLevel; string EMP_NO = Data["EMP_NO"].ToString(); string LEVEL_FLAG = Data["LEVEL_FLAG"].ToString(); // string[] ROLE_ID = Data["ROLE_ID"].ToString().Trim('[').Trim(']').Split(','); try { sfcdb = this.DBPools["SFCDB"].Borrow(); sfcdb.BeginTrain(); UserRoler = new T_c_user_role(sfcdb, DBTYPE); EmpLevel = new T_c_user(sfcdb, DBTYPE); string USER_ID = UserRoler.GetUserID(EMP_NO, sfcdb); foreach (string item in Data["ROLE_ID"]) { string strroleid = item.Trim('\'').Trim('\"'); if (UserRoler.CheckUserRole(USER_ID, strroleid, sfcdb)) { Row_c_user_role row = (Row_c_user_role)UserRoler.NewRow(); row.ID = UserRoler.GetNewID(BU, sfcdb); row.USER_ID = USER_ID; row.ROLE_ID = strroleid; row.EDIT_EMP = LoginUser.EMP_NO; row.SYSTEM_NAME = SystemName; row.EDIT_TIME = GetDBDateTime(); InsertSql += row.GetInsertString(DBTYPE) + ";\n"; } else { sfcdb.RollbackTrain(); StationReturn.Status = StationReturnStatusValue.Fail; StationReturn.Message = "該用戶已擁有該角色"; StationReturn.Data = ""; this.DBPools["SFCDB"].Return(sfcdb); return; } } InsertSql = "begin\n" + InsertSql + "end;"; sfcdb.ExecSQL(InsertSql); if (EmpLevel.CheckEmpLevel(USER_ID, LEVEL_FLAG, sfcdb)) { Row_c_user RowLevel = (Row_c_user)EmpLevel.GetObjByID(USER_ID, sfcdb); RowLevel.ID = USER_ID; RowLevel.EMP_LEVEL = LEVEL_FLAG; RowLevel.EDIT_EMP = LoginUser.EMP_NO; RowLevel.EDIT_TIME = GetDBDateTime(); UpdateSql = RowLevel.GetUpdateString(DBTYPE); sfcdb.ExecSQL(UpdateSql); } sfcdb.CommitTrain(); StationReturn.Status = StationReturnStatusValue.Pass; StationReturn.Message = "添加成功"; sfcdb.CommitTrain(); this.DBPools["SFCDB"].Return(sfcdb); } catch (Exception e) { sfcdb.RollbackTrain(); this.DBPools["SFCDB"].Return(sfcdb); throw e; } }