People: new filter AccountLoginType
This commit is contained in:
parent
882cf0bc76
commit
986361b4a0
@ -188,6 +188,7 @@ public class CachedUserService : IUserService, ICachedService
|
||||
List<List<Guid>> includeGroups,
|
||||
List<Guid> excludeGroups,
|
||||
EmployeeActivationStatus? activationStatus,
|
||||
AccountLoginType? accountLoginType,
|
||||
string text,
|
||||
string sortBy,
|
||||
bool sortOrderAsc,
|
||||
@ -196,7 +197,7 @@ public class CachedUserService : IUserService, ICachedService
|
||||
out int total,
|
||||
out int count)
|
||||
{
|
||||
return Service.GetUsers(tenant, isDocSpaceAdmin, employeeStatus, includeGroups, excludeGroups, activationStatus, text, sortBy, sortOrderAsc, limit, offset, out total, out count);
|
||||
return Service.GetUsers(tenant, isDocSpaceAdmin, employeeStatus, includeGroups, excludeGroups, activationStatus, accountLoginType, text, sortBy, sortOrderAsc, limit, offset, out total, out count);
|
||||
}
|
||||
|
||||
public UserInfo GetUser(int tenant, Guid id)
|
||||
|
@ -187,6 +187,7 @@ public class UserManager
|
||||
List<List<Guid>> includeGroups,
|
||||
List<Guid> excludeGroups,
|
||||
EmployeeActivationStatus? activationStatus,
|
||||
AccountLoginType? accountLoginType,
|
||||
string text,
|
||||
string sortBy,
|
||||
bool sortOrderAsc,
|
||||
@ -195,7 +196,7 @@ public class UserManager
|
||||
out int total,
|
||||
out int count)
|
||||
{
|
||||
return _userService.GetUsers(Tenant.Id, isDocSpaceAdmin, employeeStatus, includeGroups, excludeGroups, activationStatus, text, sortBy, sortOrderAsc, limit, offset, out total, out count);
|
||||
return _userService.GetUsers(Tenant.Id, isDocSpaceAdmin, employeeStatus, includeGroups, excludeGroups, activationStatus, accountLoginType, text, sortBy, sortOrderAsc, limit, offset, out total, out count);
|
||||
}
|
||||
|
||||
public string[] GetUserNames(EmployeeStatus status)
|
||||
|
34
common/ASC.Core.Common/Core/AccountLoginType.cs
Normal file
34
common/ASC.Core.Common/Core/AccountLoginType.cs
Normal file
@ -0,0 +1,34 @@
|
||||
// (c) Copyright Ascensio System SIA 2010-2022
|
||||
//
|
||||
// This program is a free software product.
|
||||
// You can redistribute it and/or modify it under the terms
|
||||
// of the GNU Affero General Public License (AGPL) version 3 as published by the Free Software
|
||||
// Foundation. In accordance with Section 7(a) of the GNU AGPL its Section 15 shall be amended
|
||||
// to the effect that Ascensio System SIA expressly excludes the warranty of non-infringement of
|
||||
// any third-party rights.
|
||||
//
|
||||
// This program is distributed WITHOUT ANY WARRANTY, without even the implied warranty
|
||||
// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For details, see
|
||||
// the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
//
|
||||
// You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, EU, LV-1021.
|
||||
//
|
||||
// The interactive user interfaces in modified source and object code versions of the Program must
|
||||
// display Appropriate Legal Notices, as required under Section 5 of the GNU AGPL version 3.
|
||||
//
|
||||
// Pursuant to Section 7(b) of the License you must retain the original Product logo when
|
||||
// distributing the program. Pursuant to Section 7(e) we decline to grant you any rights under
|
||||
// trademark law for use of our trademarks.
|
||||
//
|
||||
// All the Product's GUI elements, including illustrations and icon sets, as well as technical writing
|
||||
// content are licensed under the terms of the Creative Commons Attribution-ShareAlike 4.0
|
||||
// International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
|
||||
namespace ASC.Core;
|
||||
|
||||
public enum AccountLoginType
|
||||
{
|
||||
SSO,
|
||||
LDAP,
|
||||
Standart
|
||||
}
|
@ -35,6 +35,7 @@ public interface IUserService
|
||||
List<List<Guid>> includeGroups,
|
||||
List<Guid> excludeGroups,
|
||||
EmployeeActivationStatus? activationStatus,
|
||||
AccountLoginType? accountLoginType,
|
||||
string text,
|
||||
string sortBy,
|
||||
bool sortOrderAsc,
|
||||
|
@ -24,10 +24,6 @@
|
||||
// content are licensed under the terms of the Creative Commons Attribution-ShareAlike 4.0
|
||||
// International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
|
||||
using ASC.Core.Common.EF;
|
||||
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace ASC.Core.Data;
|
||||
|
||||
[Scope]
|
||||
@ -212,16 +208,16 @@ public class EFUserService : IUserService
|
||||
.ToList();
|
||||
}
|
||||
|
||||
public IQueryable<UserInfo> GetUsers(int tenant, bool isDocSpaceAdmin, EmployeeStatus? employeeStatus, List<List<Guid>> includeGroups, List<Guid> excludeGroups, EmployeeActivationStatus? activationStatus, string text, string sortBy, bool sortOrderAsc, long limit, long offset, out int total, out int count)
|
||||
public IQueryable<UserInfo> GetUsers(int tenant, bool isDocSpaceAdmin, EmployeeStatus? employeeStatus, List<List<Guid>> includeGroups, List<Guid> excludeGroups, EmployeeActivationStatus? activationStatus, AccountLoginType? accountLoginType, string text, string sortBy, bool sortOrderAsc, long limit, long offset, out int total, out int count)
|
||||
{
|
||||
var userDbContext = _dbContextFactory.CreateDbContext();
|
||||
var totalQuery = GetUserQuery(userDbContext, tenant);
|
||||
totalQuery = GetUserQueryForFilter(userDbContext, totalQuery, isDocSpaceAdmin, employeeStatus, includeGroups, excludeGroups, activationStatus, text);
|
||||
totalQuery = GetUserQueryForFilter(userDbContext, totalQuery, isDocSpaceAdmin, employeeStatus, includeGroups, excludeGroups, activationStatus, accountLoginType, text);
|
||||
total = totalQuery.Count();
|
||||
|
||||
var q = GetUserQuery(userDbContext, tenant);
|
||||
|
||||
q = GetUserQueryForFilter(userDbContext, q, isDocSpaceAdmin, employeeStatus, includeGroups, excludeGroups, activationStatus, text);
|
||||
q = GetUserQueryForFilter(userDbContext, q, isDocSpaceAdmin, employeeStatus, includeGroups, excludeGroups, activationStatus, accountLoginType, text);
|
||||
|
||||
var orderedQuery = q.OrderBy(r => r.ActivationStatus == EmployeeActivationStatus.Pending);
|
||||
q = orderedQuery;
|
||||
@ -632,6 +628,7 @@ public class EFUserService : IUserService
|
||||
List<List<Guid>> includeGroups,
|
||||
List<Guid> excludeGroups,
|
||||
EmployeeActivationStatus? activationStatus,
|
||||
AccountLoginType? accountLoginType,
|
||||
string text)
|
||||
{
|
||||
q = q.Where(r => !r.Removed);
|
||||
@ -701,6 +698,19 @@ public class EFUserService : IUserService
|
||||
u.Email.Contains(text));
|
||||
}
|
||||
|
||||
switch (accountLoginType)
|
||||
{
|
||||
case AccountLoginType.LDAP:
|
||||
q = q.Where(r => r.Sid != null);
|
||||
break;
|
||||
case AccountLoginType.SSO:
|
||||
q = q.Where(r => r.SsoNameId != null);
|
||||
break;
|
||||
case AccountLoginType.Standart:
|
||||
q = q.Where(r => r.SsoNameId == null && r.Sid == null);
|
||||
break;
|
||||
}
|
||||
|
||||
return q;
|
||||
}
|
||||
|
||||
|
@ -581,13 +581,13 @@ public class UserController : PeopleControllerBase
|
||||
_apiContext.SetDataFiltered();
|
||||
}
|
||||
|
||||
return GetFullByFilter(status, groupId, null, null, null, null);
|
||||
return GetFullByFilter(status, groupId, null, null, null, null, null);
|
||||
}
|
||||
|
||||
[HttpGet("filter")]
|
||||
public async IAsyncEnumerable<EmployeeFullDto> GetFullByFilter(EmployeeStatus? employeeStatus, Guid? groupId, EmployeeActivationStatus? activationStatus, EmployeeType? employeeType, bool? isAdministrator, Payments? payments)
|
||||
public async IAsyncEnumerable<EmployeeFullDto> GetFullByFilter(EmployeeStatus? employeeStatus, Guid? groupId, EmployeeActivationStatus? activationStatus, EmployeeType? employeeType, bool? isAdministrator, Payments? payments, AccountLoginType? accountLoginType)
|
||||
{
|
||||
var users = GetByFilter(employeeStatus, groupId, activationStatus, employeeType, isAdministrator, payments);
|
||||
var users = GetByFilter(employeeStatus, groupId, activationStatus, employeeType, isAdministrator, payments, accountLoginType);
|
||||
|
||||
foreach (var user in users)
|
||||
{
|
||||
@ -633,9 +633,9 @@ public class UserController : PeopleControllerBase
|
||||
}
|
||||
|
||||
[HttpGet("simple/filter")]
|
||||
public async IAsyncEnumerable<EmployeeDto> GetSimpleByFilter(EmployeeStatus? employeeStatus, Guid? groupId, EmployeeActivationStatus? activationStatus, EmployeeType? employeeType, bool? isAdministrator, Payments? payments)
|
||||
public async IAsyncEnumerable<EmployeeDto> GetSimpleByFilter(EmployeeStatus? employeeStatus, Guid? groupId, EmployeeActivationStatus? activationStatus, EmployeeType? employeeType, bool? isAdministrator, Payments? payments, AccountLoginType? accountLoginType)
|
||||
{
|
||||
var users = GetByFilter(employeeStatus, groupId, activationStatus, employeeType, isAdministrator, payments);
|
||||
var users = GetByFilter(employeeStatus, groupId, activationStatus, employeeType, isAdministrator, payments, accountLoginType);
|
||||
|
||||
foreach (var user in users)
|
||||
{
|
||||
@ -1321,7 +1321,7 @@ public class UserController : PeopleControllerBase
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
private IQueryable<UserInfo> GetByFilter(EmployeeStatus? employeeStatus, Guid? groupId, EmployeeActivationStatus? activationStatus, EmployeeType? employeeType, bool? isDocSpaceAdministrator, Payments? payments)
|
||||
private IQueryable<UserInfo> GetByFilter(EmployeeStatus? employeeStatus, Guid? groupId, EmployeeActivationStatus? activationStatus, EmployeeType? employeeType, bool? isDocSpaceAdministrator, Payments? payments, AccountLoginType? accountLoginType)
|
||||
{
|
||||
if (_coreBaseSettings.Personal)
|
||||
{
|
||||
@ -1385,7 +1385,7 @@ public class UserController : PeopleControllerBase
|
||||
includeGroups.Add(adminGroups);
|
||||
}
|
||||
|
||||
var users = _userManager.GetUsers(isDocSpaceAdmin, employeeStatus, includeGroups, excludeGroups, activationStatus, _apiContext.FilterValue, _apiContext.SortBy, !_apiContext.SortDescending, _apiContext.Count, _apiContext.StartIndex, out var total, out var count);
|
||||
var users = _userManager.GetUsers(isDocSpaceAdmin, employeeStatus, includeGroups, excludeGroups, activationStatus, accountLoginType, _apiContext.FilterValue, _apiContext.SortBy, !_apiContext.SortDescending, _apiContext.Count, _apiContext.StartIndex, out var total, out var count);
|
||||
|
||||
_apiContext.SetTotalCount(total).SetCount(count);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user