public void GetTreeList(string userName) { SysUserRoleBLL sysUserRoleBLL = new SysUserRoleBLL(); SysPermissionBLL sysPermissionBLL = new SysPermissionBLL(); List <SysUserRoleModel> userRoleModelList = sysUserRoleBLL.GetByUserId(userName); List <SysPermissionModel> permissionList = new List <SysPermissionModel>(); foreach (var a in userRoleModelList) { permissionList.AddRange(sysPermissionBLL.GetByRoleId(a.RoleId)); } GetTree(permissionList); }
public bool ValiddatePermission(AccountModel account, string controller, string action, string filePath) { bool bResult = false; string actionName = string.IsNullOrEmpty(ActionName) ? action : ActionName; if (account != null) { List <string> perm = null; //测试当前controller是否已赋权限值,如果没有从 //如果存在区域,Seesion保存(区域+控制器) //if (!string.IsNullOrEmpty(Area)) //{ // controller = Area + "/" + controller; //} perm = (List <string>)HttpContext.Current.Session[filePath]; if (perm == null || perm.Count == 0) { using (SysPermissionBLL permissionBLL = new SysPermissionBLL() { permissionRepository = new SysPermissionRepository() }) { perm = permissionBLL.GetPermissionListByconn(account.Id, controller); //获取当前用户的权限列表 HttpContext.Current.Session[filePath] = perm; //获取的劝降放入会话由Controller调用 } } ////当用户访问index时,只要权限>0就可以访问 //if (actionName.ToLower() == "index") //{ // if (perm.Count > 0) // { // return true; // } //} //查询当前Action 是否有操作权限,大于0表示有,否则没有 int count = perm.Where(a => a.ToLower() == actionName.ToLower()).Count(); if (count > 0) { bResult = true; } else { bResult = false; HttpContext.Current.Response.Write("你没有操作权限,请联系管理员!"); } } return(bResult); }
public List<T_SYS_USER> GetManagers(List<string> companyIDs) { using (SysPermissionBLL bll = new SysPermissionBLL()) { List<T_SYS_USER> listUsers = new List<T_SYS_USER>(); try { listUsers = bll.GetManagers(companyIDs); } catch (Exception ex) { Tracer.Debug("PermissionService-GetFlowManagers获取管理员集合出错:" + ex.ToString()); } return listUsers; } }
public V_PermissionUpdateState GetLatestTimeOfPermission(string employeeid) { using (SysPermissionBLL bll = new SysPermissionBLL()) { try { V_PermissionUpdateState perUpdate = new V_PermissionUpdateState(); perUpdate.Timer = bll.GetLatestTimeOfPermission(employeeid); perUpdate.Counter = bll.GetPermissionCounts(employeeid); return perUpdate; } catch(Exception ex) { Tracer.Debug("PermissionService-GetLatestTimeOfPermission获取时间出错:" + ex.ToString()); return null; } } }
public void SetCutomterPermissionObj(string RoleID, List<CustomerPermission> objs, ref string strResult) { try { using (EntityMenuCustomPermBLL bll = new EntityMenuCustomPermBLL()) { if (string.IsNullOrWhiteSpace(RoleID)) { return; } RoleEntityMenuBLL roleEmBll = new RoleEntityMenuBLL(); roleEmBll.UpdateRoleInfo(RoleID, strResult);//修改信息 strResult = string.Empty; IQueryable<T_SYS_ENTITYMENUCUSTOMPERM> cuspers = bll.GetCustomPermByRoleID(RoleID); //if (cuspers != null) //{ // if (cuspers.Count() > 0) // { // foreach (T_SYS_ENTITYMENUCUSTOMPERM item in cuspers) // { // string strId = item.ENTITYMENUCUSTOMPERMID; // EntityMenuCustomPermDelete(strId); // } // } //} SysPermissionBLL bllPer = new SysPermissionBLL(); T_SYS_ROLE entRole = GetSysRoleSingleInfoById(RoleID);//获取角色ID实体对象 foreach (var Menus in objs) { if (Menus.PermissionValue == null) { continue; } if (Menus.PermissionValue.Count() == 0) { continue; } T_SYS_ENTITYMENU entMenu = GetSysMenuByID(Menus.EntityMenuId); foreach (var Perms in Menus.PermissionValue) { if (Perms.OrgObjects == null) { continue; } if (Perms.OrgObjects.Count() == 0) { continue; } T_SYS_PERMISSION entPer = bllPer.GetAttachSysPermissionByID(Perms.Permission);//获取权限实体对象 foreach (var OrgIns in Perms.OrgObjects) { T_SYS_ENTITYMENUCUSTOMPERM customerPer = new T_SYS_ENTITYMENUCUSTOMPERM(); customerPer.ENTITYMENUCUSTOMPERMID = Guid.NewGuid().ToString(); customerPer.T_SYS_ROLEReference.EntityKey = entRole.EntityKey; customerPer.T_SYS_ROLE = entRole; //customerPer.T_SYS_ENTITYMENU = entMenu; customerPer.T_SYS_ENTITYMENUReference.EntityKey = entMenu.EntityKey; customerPer.T_SYS_ENTITYMENU = entMenu; //customerPer.T_SYS_PERMISSION = entPer; customerPer.T_SYS_PERMISSIONReference.EntityKey = entPer.EntityKey; customerPer.T_SYS_PERMISSION = entPer; switch (OrgIns.OrgType) { //公司 case "0": customerPer.COMPANYID = OrgIns.OrgID; break; case "1"://部门 customerPer.DEPARTMENTID = OrgIns.OrgID; break; case "2"://岗位 customerPer.POSTID = OrgIns.OrgID; break; } customerPer.CREATEDATE = DateTime.Now; customerPer.UPDATEDATE = DateTime.Now; EntityMenuCustomPermAdd(customerPer); } } } } } catch (Exception ex) { strResult = ex.Message; } }
public List<T_SYS_PERMISSION> FindSysPermissionByStr(string sName) { using (SysPermissionBLL bll = new SysPermissionBLL()) { #region List<T_SYS_PERMISSION> perList; string keyString = "FindSysPermissionByStr" + sName; if (WCFCache.Current[keyString] == null) { IQueryable<T_SYS_PERMISSION> IQList = bll.FindSysPermissionByStr(sName); perList = IQList == null ? null : IQList.ToList(); WCFCache.Current.Insert(keyString, perList, DateTime.Now.AddMinutes(15)); } else { perList = (List<T_SYS_PERMISSION>)WCFCache.Current[keyString]; } #endregion return perList.Count() > 0 ? perList : null; } }
public string SysPermissionDelete(string perID) { using (SysPermissionBLL bll = new SysPermissionBLL()) { string keyString = "PermissionAllPagingCache"; WCFCache.Current[keyString] = null;//清缓存 return bll.SysPermissionDelete(perID); } }
public string SysPermissionUpdate(T_SYS_PERMISSION obj) { using (SysPermissionBLL bll = new SysPermissionBLL()) { string keyString = "PermissionAllPagingCache"; WCFCache.Current[keyString] = null;//清缓存 string AddkeyString = "GetSysPermissionByID" + obj.PERMISSIONID; WCFCache.Current[AddkeyString] = null; return bll.SysPermissionUpdate(obj); } }
public string SysPermissionAdd(T_SYS_PERMISSION obj) { using (SysPermissionBLL bll = new SysPermissionBLL()) { string keyString = "PermissionAllPagingCache" ; WCFCache.Current[keyString] = null;//清缓存 return bll.AddPermission(obj); } //bll.Add(obj); }
public T_SYS_PERMISSION GetSysPermissionByID(string perID) { using (SysPermissionBLL bll = new SysPermissionBLL()) { #region T_SYS_PERMISSION perList; string keyString = "GetSysPermissionByID" + perID; if (WCFCache.Current[keyString] == null) { perList = bll.GetSysPermissionByID(perID); WCFCache.Current.Insert(keyString, perList, DateTime.Now.AddMinutes(15)); } else { perList = (T_SYS_PERMISSION)WCFCache.Current[keyString]; } return perList; #endregion } }
//所有用户信息 2010-6-10 public List<T_SYS_PERMISSION> GetSysPermissionAllPaging(int pageIndex, int pageSize, string sort, string filterString, object[] paras, ref int pageCount, LoginUserInfo loginUserInfo) { using (SysPermissionBLL bll = new SysPermissionBLL()) { #region List<T_SYS_PERMISSION> perList; string keyString = "PermissionAllPagingCache"; if (WCFCache.Current[keyString] == null) { perList = bll.GetSysPermissionAll().ToList(); WCFCache.Current.Insert(keyString, perList, DateTime.Now.AddMinutes(15)); } else { perList = (List<T_SYS_PERMISSION>)WCFCache.Current[keyString]; } #endregion return perList != null ? perList : null; } }
public List<T_SYS_PERMISSION> GetSysPermissionByEntityID(string EntityID) { using (SysPermissionBLL bll = new SysPermissionBLL()) { //SysPermissionBLL bll = new SysPermissionBLL(); //IQueryable<T_SYS_PERMISSION> perList = bll.GetSysPermissionAll(); #region List<T_SYS_PERMISSION> perList; string keyString = "SysPermissionAll" + EntityID; if (WCFCache.Current[keyString] == null) { IQueryable<T_SYS_PERMISSION> IQList = bll.GetPermissionByEntityID(EntityID); perList = IQList == null ? null : IQList.ToList(); WCFCache.Current.Insert(keyString, perList, DateTime.Now.AddMinutes(15)); } else { perList = (List<T_SYS_PERMISSION>)WCFCache.Current[keyString]; } #endregion return perList.Count() > 0 ? perList : null; } }
public List<T_SYS_PERMISSION> GetSysCommonPermissionAll() { using (SysPermissionBLL bll = new SysPermissionBLL()) { #region 龙康才新增 List<T_SYS_PERMISSION> perList; WCFCache.Current["SysCommonPermissionAll"] = null; string keyString = "SysCommonPermissionAll"; if (WCFCache.Current[keyString] == null) { IQueryable<T_SYS_PERMISSION> IQList = bll.GetSysCommonPermissionAll(); perList = IQList == null ? null : IQList.ToList(); WCFCache.Current.Insert(keyString, perList, DateTime.Now.AddMinutes(15)); } else { perList = (List<T_SYS_PERMISSION>)WCFCache.Current[keyString]; } #endregion return perList.Count() > 0 ? perList : null; } }
/// <summary> /// 更新离职申请记录 /// </summary> /// <param name="entity">离职申请记录实体</param> public void LeftOfficeUpdate(T_HR_LEFTOFFICE entity, ref string strMsg) { try { //SMT.SaaS.BLLCommonServices.PermissionWS.PermissionServiceClient perclient = new SMT.SaaS.BLLCommonServices.PermissionWS.PermissionServiceClient(); string employeeId = entity.T_HR_EMPLOYEE.EMPLOYEEID; T_SYS_USER sysuser = new T_SYS_USER();//perclient.GetUserByEmployeeID(employeeId); using (SysUserBLL bll = new SysUserBLL()) { sysuser = bll.GetUserByEmployeeID(employeeId); } var tmp = from c in dal.GetObjects() where c.T_HR_EMPLOYEE.EMPLOYEEID == entity.T_HR_EMPLOYEE.EMPLOYEEID && (c.CHECKSTATE == "0" || c.CHECKSTATE == "1") && c.T_HR_EMPLOYEEPOST.EMPLOYEEPOSTID == entity.T_HR_EMPLOYEEPOST.EMPLOYEEPOSTID && c.DIMISSIONID != entity.DIMISSIONID select c; if (tmp.Count() > 0) { //throw new Exception("LEFTOFFICESUBMITTED"); strMsg = "LEFTOFFICESUBMITTED"; return; } T_HR_LEFTOFFICE ent = dal.GetTable().FirstOrDefault(s => s.DIMISSIONID == entity.DIMISSIONID); if (ent != null) { if (entity.CHECKSTATE == Convert.ToInt32(CheckStates.Approved).ToString()) { //如果是代理岗位 就将代理岗设为无效 并添加异动记录 EmployeePostBLL epbll = new EmployeePostBLL(); T_HR_EMPLOYEEPOST epost = dal.GetObjects <T_HR_EMPLOYEEPOST>().Include("T_HR_POST").FirstOrDefault(ep => ep.EMPLOYEEPOSTID == entity.T_HR_EMPLOYEEPOST.EMPLOYEEPOSTID); if (epost != null && epost.ISAGENCY == "1") { epost.EDITSTATE = "0"; epbll.EmployeePostUpdate(epost); //删除岗位 #region 添加异动记录 var tmpInfo = from c in dal.GetObjects <T_HR_POST>() join b in dal.GetObjects <T_HR_DEPARTMENT>() on c.T_HR_DEPARTMENT.DEPARTMENTID equals b.DEPARTMENTID where c.POSTID == epost.T_HR_POST.POSTID select new { c.POSTID, b.DEPARTMENTID, b.T_HR_COMPANY.COMPANYID }; EmployeePostChangeBLL epchangeBLL = new EmployeePostChangeBLL(); T_HR_EMPLOYEEPOSTCHANGE postChange = new T_HR_EMPLOYEEPOSTCHANGE(); postChange = new T_HR_EMPLOYEEPOSTCHANGE(); postChange.T_HR_EMPLOYEE = new T_HR_EMPLOYEE(); postChange.T_HR_EMPLOYEE.EMPLOYEEID = entity.T_HR_EMPLOYEE.EMPLOYEEID; postChange.EMPLOYEECODE = entity.T_HR_EMPLOYEE.EMPLOYEECODE; postChange.EMPLOYEENAME = entity.T_HR_EMPLOYEE.EMPLOYEECNAME; postChange.POSTCHANGEID = Guid.NewGuid().ToString(); postChange.CHECKSTATE = Convert.ToInt32(CheckStates.Approved).ToString(); postChange.ISAGENCY = "1"; if (tmpInfo.Count() > 0) { postChange.FROMCOMPANYID = tmpInfo.FirstOrDefault().COMPANYID; postChange.FROMDEPARTMENTID = tmpInfo.FirstOrDefault().DEPARTMENTID; postChange.FROMPOSTID = tmpInfo.FirstOrDefault().POSTID; postChange.OWNERCOMPANYID = tmpInfo.FirstOrDefault().COMPANYID; postChange.OWNERDEPARTMENTID = tmpInfo.FirstOrDefault().DEPARTMENTID; postChange.OWNERPOSTID = tmpInfo.FirstOrDefault().POSTID; } postChange.OWNERID = entity.T_HR_EMPLOYEE.EMPLOYEEID; postChange.POSTCHANGREASON = entity.LEFTOFFICEREASON; postChange.CHANGEDATE = entity.LEFTOFFICEDATE.ToString(); postChange.CREATEUSERID = entity.CREATEUSERID; postChange.POSTCHANGCATEGORY = "3"; string Msg = string.Empty; epchangeBLL.EmployeePostChangeAdd(postChange, ref Msg); #endregion //通知及时通讯 DelImstantMember(entity.T_HR_EMPLOYEE.EMPLOYEEID, epost.T_HR_POST.POSTID); } else { //员工状态修改为离职中 string tmpstr = ""; var employeetmps = from c in dal.GetObjects <T_HR_EMPLOYEE>() where c.EMPLOYEEID == entity.T_HR_EMPLOYEE.EMPLOYEEID select c; if (employeetmps.Count() > 0) { EmployeeBLL bll = new EmployeeBLL(); var employeetmp = employeetmps.FirstOrDefault(); if (employeetmp.EMPLOYEESTATE != "2") //已离职,如果已经离职则不要再改为离职中 { employeetmp.EMPLOYEESTATE = "3"; //离职中 } bll.EmployeeUpdate(employeetmp, ref tmpstr); } } #region 员工离职通知流程管理员进行修改相应的流程 try { SMT.Foundation.Log.Tracer.Debug(System.DateTime.Now.ToString() + " 员工离职审核通过通知流程管理员进行修改相应的流程"); StringBuilder sb = new StringBuilder(); sb.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>"); sb.Append("<Root>"); //查出用户的所有角色 List <T_SYS_USERROLE> roleUserList = new List <T_SYS_USERROLE>(); //perclient.GetSysUserRoleByUser(sysuser.SYSUSERID).ToList(); using (SysUserRoleBLL bll = new SysUserRoleBLL()) { roleUserList = bll.GetSysUserRoleByUser(sysuser.SYSUSERID).ToList(); } if (roleUserList != null && roleUserList.Any()) { bool hasRole = false; sb.Append("<Roles>"); foreach (var roleUser in roleUserList) { //查出改用户所在的角色,还有没有其它用户,如果没有则调流程 string roleId = roleUser.T_SYS_ROLE.ROLEID; List <T_SYS_USER> roleUserIncludeSource = new List <T_SYS_USER>();// perclient.GetSysUserByRoleToEmployeeLeave(roleId); using (SysUserRoleBLL bll = new SysUserRoleBLL()) { roleUserIncludeSource = bll.GetSysUserByRole(roleId).ToList(); } if (roleUserIncludeSource == null) { hasRole = true; sb.Append("<Role RoleID=\"" + roleUser.T_SYS_ROLE.ROLEID + "\" RoleName=\"" + roleUser.T_SYS_ROLE.ROLENAME + "\" />"); } else { var roleUserInclude = roleUserIncludeSource.Where(t => t.EMPLOYEEID != employeeId).ToList(); if (roleUserInclude.Count == 0) { hasRole = true; sb.Append("<Role RoleID=\"" + roleUser.T_SYS_ROLE.ROLEID + "\" RoleName=\"" + roleUser.T_SYS_ROLE.ROLENAME + "\" />"); } } } sb.Append("</Roles>"); //如果存在角色 if (hasRole) { var empInfo = from c in dal.GetObjects <T_HR_POST>() join b in dal.GetObjects <T_HR_DEPARTMENT>() on c.T_HR_DEPARTMENT.DEPARTMENTID equals b.DEPARTMENTID join d in dal.GetObjects <T_HR_COMPANY>() on b.T_HR_COMPANY.COMPANYID equals d.COMPANYID where c.POSTID == entity.T_HR_EMPLOYEE.OWNERPOSTID select new { c.T_HR_DEPARTMENT.T_HR_DEPARTMENTDICTIONARY.DEPARTMENTNAME, b.T_HR_COMPANY.BRIEFNAME, c.T_HR_POSTDICTIONARY.POSTNAME }; string companyName = ""; string deptName = ""; string postName = ""; if (empInfo != null) { companyName = empInfo.FirstOrDefault().BRIEFNAME; deptName = empInfo.FirstOrDefault().DEPARTMENTNAME; postName = empInfo.FirstOrDefault().POSTNAME; } sb.Append(" <User UserID=\"" + entity.T_HR_EMPLOYEE.EMPLOYEEID + "\" UserName=\"" + entity.T_HR_EMPLOYEE.EMPLOYEECNAME + "\" CompanyID=\"" + entity.T_HR_EMPLOYEE.OWNERCOMPANYID + "\" CompanyName=\"" + companyName + "\" DeparmentID=\"" + entity.T_HR_EMPLOYEE.OWNERDEPARTMENTID + "\" DeparmentName=\"" + deptName + "\" PostID=\"" + entity.T_HR_EMPLOYEE.OWNERPOSTID + "\" PostName=\"" + postName + "\" />"); bool hasManagerEmail = false; List <T_SYS_USER> flowManagers; //perclient.GetFlowManagers(new string[] { entity.T_HR_EMPLOYEE.OWNERCOMPANYID }); using (SysPermissionBLL bll = new SysPermissionBLL()) { flowManagers = bll.GetFlowManagers(new List <string> { entity.T_HR_EMPLOYEE.OWNERCOMPANYID }); } if (flowManagers != null) { sb.Append("<Admins>"); foreach (var mangers in flowManagers) { string email = ""; var employee = from c in dal.GetObjects <T_HR_EMPLOYEE>() where c.EMPLOYEEID == mangers.EMPLOYEEID select c; if (employee != null) { email = employee.FirstOrDefault().EMAIL; } if (!string.IsNullOrEmpty(email)) { hasManagerEmail = true; sb.Append("<Admin ID=\"" + mangers.EMPLOYEEID + "\" Name=\"" + mangers.EMPLOYEENAME + "\" Email=\"" + email + "\" />"); } } sb.Append("</Admins>"); } sb.Append("</Root>"); if (hasManagerEmail) { //SMT.Foundation.Log.Tracer.Debug(System.DateTime.Now.ToString() + "调用CheckFlowByRole:" + sb.ToString()); //SMT.SaaS.BLLCommonServices.WFPlatformWS.OutInterfaceClient outClient = new SaaS.BLLCommonServices.WFPlatformWS.OutInterfaceClient(); //outClient.CheckFlowByRole(sb.ToString()); } else { SMT.Foundation.Log.Tracer.Debug(System.DateTime.Now.ToString() + "流程管理员没有设置邮箱,不调用CheckFlowByRole"); } } else { SMT.Foundation.Log.Tracer.Debug(System.DateTime.Now.ToString() + "当前用户id:(" + employeeId + ")所在角色还有用户,不调用CheckFlowByRole"); } } else { SMT.Foundation.Log.Tracer.Debug(System.DateTime.Now.ToString() + "没有找到用户的角色"); } } catch (Exception ex) { SMT.Foundation.Log.Tracer.Debug(System.DateTime.Now.ToString() + "调用员工离职审核通过通知流程管理员进行修改相应的流程异常:" + ex.Message.ToString()); } #endregion } Utility.CloneEntity <T_HR_LEFTOFFICE>(entity, ent); if (entity.T_HR_EMPLOYEE != null) { ent.T_HR_EMPLOYEEReference.EntityKey = new System.Data.EntityKey(qualifiedEntitySetName + "T_HR_EMPLOYEE", "EMPLOYEEID", entity.T_HR_EMPLOYEE.EMPLOYEEID); } if (entity.T_HR_EMPLOYEEPOST != null) { ent.T_HR_EMPLOYEEPOSTReference.EntityKey = new System.Data.EntityKey(qualifiedEntitySetName + "T_HR_EMPLOYEEPOST", "EMPLOYEEPOSTID", entity.T_HR_EMPLOYEEPOST.EMPLOYEEPOSTID); } //dal.Update(ent); Update(ent, ent.CREATEUSERID); } } catch (Exception ex) { strMsg = ex.Message; SMT.Foundation.Log.Tracer.Debug(System.DateTime.Now.ToString() + " LeftOfficeUpdate:" + ex.Message); throw ex; } }