public virtual ReturnInfo <IList <UserInfo> > QueryByFilter(UserFilterInfo filter, string connectionId = null) { return(ExecReturnFunc <IList <UserInfo> >((reInfo) => { return Persistence.SelectByFilter(filter, connectionId); })); }
/// <summary> /// 追加查询分页SQL /// </summary> /// <param name="whereSql">where语句</param> /// <param name="parameters">参数</param> /// <param name="filter">筛选</param> protected override void AppendSelectPageWhereSql(StringBuilder whereSql, DynamicParameters parameters, FilterInfo filter = null) { whereSql.AppendFormat(" AND [{0}]=@SystemHide", GetFieldByProp("SystemHide")); parameters.Add("@SystemHide", false); if (filter is UserFilterInfo) { UserFilterInfo userFilter = filter as UserFilterInfo; if (userFilter.Enabled != null) { whereSql.AppendFormat(" AND [{0}]=@Enabled", GetFieldByProp("Enabled")); parameters.Add("@Enabled", userFilter.Enabled); } } }
/// <summary> /// 根据筛选条件查询用户列表 /// </summary> /// <param name="filter">筛选</param> /// <param name="connectionId">连接ID</param> /// <returns>用户列表</returns> public IList <UserInfo> SelectByFilter(UserFilterInfo filter, string connectionId = null) { DynamicParameters parameters; StringBuilder whereSql = MergeWhereSql(filter, out parameters); IList <UserInfo> result = null; DbConnectionManager.BrainpowerExecute(connectionId, this, (connId, dbConn) => { string sql = $"{SelectSql()} " + whereSql.ToString(); result = dbConn.Query <UserInfo>(sql, parameters).AsList(); }, AccessMode.SLAVE); return(result); }
/// <summary> /// 获取查询分页连接SQL /// </summary> /// <param name="parameters">参数</param> /// <param name="filter">筛选</param> /// <returns>连接SQL语句</returns> protected override string GetSelectPageJoinSql(DynamicParameters parameters, FilterInfo filter = null) { if (filter is UserFilterInfo) { UserFilterInfo userFilter = filter as UserFilterInfo; if (userFilter.RoleId == null) { return(null); } parameters.Add("@RoleId", userFilter.RoleId); return("INNER JOIN user_role UR ON UR.user_id=[user[.id AND UR.role_id=@RoleId"); } return(null); }
public IActionResult TestLdapFilters([FromBody] UserFilterInfo body) { var configuration = LdapPlugin.Instance.Configuration; configuration.LdapSearchFilter = body.LdapSearchFilter; configuration.LdapAdminFilter = body.LdapAdminFilter; LdapPlugin.Instance.UpdateConfiguration(configuration); var usersComplete = false; try { var response = new LdapFilterResponse(); var users = _ldapAuthenticationProvider.GetFilteredUsers(configuration.LdapSearchFilter).ToHashSet(); response.Users = users.Count; usersComplete = true; HashSet <string> admins = new HashSet <string>(); if (!string.IsNullOrEmpty(configuration.LdapAdminFilter) && !string.Equals(configuration.LdapAdminFilter, "_disabled_", StringComparison.Ordinal)) { admins = _ldapAuthenticationProvider.GetFilteredUsers(configuration.LdapAdminFilter).ToHashSet(); } response.Admins = admins.Count; response.IsSubset = admins.IsSubsetOf(users); return(Ok(response)); } catch (AuthenticationException e) { return(Unauthorized(new LdapTestErrorResponse(e.Message))); } catch (LdapException e) { var filterLabel = usersComplete ? "Admin Filter: " : "User Filter: "; var filterMessage = Regex.Match(e.ToString(), @"LdapLocalException: (?<message>.*) \(\d+\) Filter Error"); if (filterMessage.Success) { return(BadRequest(new LdapTestErrorResponse(filterLabel + filterMessage.Groups["message"].Value))); } return(BadRequest(new LdapTestErrorResponse(filterLabel + e.Message))); } }
public IList <UserInfo> SearchUser(UserFilterInfo filterInfo) { IList <UserInfo> userInfos = null; switch (filterInfo.OrganizationType) { case OrganizationType.Company: case OrganizationType.Department: DepartmentUserSearcher deparUserFilter = new DepartmentUserSearcher(this.OrganizationManager); deparUserFilter.Account = filterInfo.Account; deparUserFilter.AccountOrName = filterInfo.AccountOrName; deparUserFilter.DepartmentId = filterInfo.OrganizationId; deparUserFilter.Name = filterInfo.Name; deparUserFilter.Recursive = filterInfo.Recursive; userInfos = deparUserFilter.Search().Select(x => x.MapUserInfo()).ToList(); break; case OrganizationType.GeneralManagerPosition: case OrganizationType.ManagerPosition: case OrganizationType.Position: case OrganizationType.VirtualPosition: PositionUserSearcher positionUserFilter = new PositionUserSearcher(this.OrganizationManager); positionUserFilter.Account = filterInfo.Account; positionUserFilter.PositionId = filterInfo.OrganizationId; positionUserFilter.Name = filterInfo.Name; positionUserFilter.Recursive = filterInfo.Recursive; userInfos = positionUserFilter.Search().Select(x => x.MapUserInfo()).ToList(); break; } if (userInfos == null) { userInfos = new List <UserInfo>(); } return(userInfos); }
public virtual FileContentResult Export() { IDictionary <string, string> dicParams = Request.QueryString.Value.ToDictionaryFromUrlParams(); UserFilterInfo filter = dicParams.ToObject <UserFilterInfo, string>(); ReturnInfo <IList <UserInfo> > returnInfo = Service.QueryByFilter(filter); if (returnInfo.Failure()) { return(File(new byte[] { 0 }, null)); } Response.Headers.Add("Content-Disposition", "attachment;filename=" + WebUtility.UrlEncode("用户_" + DateTime.Now.ToFixedDate() + ".xls")); try { return(File(returnInfo.Data.ToExcelBytes(), "application/vnd.ms-excel")); } catch (Exception ex) { Log.ErrorAsync("导出Excel发生异常", ex); return(null); } }
public virtual FileContentResult Export() { var comData = HttpContext.CreateCommonUseData(ComUseDataFactory, menuCode: MenuCode(), functionCodes: FunCodeDefine.EXPORT_EXCEL_CODE); IDictionary <string, string> dicParams = Request.QueryString.Value.ToDictionaryFromUrlParams(); UserFilterInfo filter = dicParams.ToObject <UserFilterInfo, string>(); ReturnInfo <IList <UserInfo> > returnInfo = Service.QueryByFilter(filter, comData); if (returnInfo.Failure()) { return(File(new byte[] { 0 }, null)); } Response.Headers.Add("Content-Disposition", "attachment;filename=" + WebUtility.UrlEncode("用户_" + DateTime.Now.ToFixedDate() + ".xlsx")); try { return(File(returnInfo.Data.ToExcelBytes(), "application/vnd.ms-excel")); } catch (Exception ex) { Log.ErrorAsync("导出Excel发生异常", ex); return(null); } }