Feed: FilesModule

This commit is contained in:
pavelbannov 2020-06-04 13:54:13 +03:00
parent 84a3c67e1e
commit 87af491e89
9 changed files with 55 additions and 12 deletions

View File

@ -287,7 +287,7 @@ namespace ASC.Core
public Tenant GetCurrentTenant(bool throwIfNotFound) public Tenant GetCurrentTenant(bool throwIfNotFound)
{ {
return GetCurrentTenant(throwIfNotFound, HttpContextAccessor.HttpContext); return GetCurrentTenant(throwIfNotFound, HttpContextAccessor?.HttpContext);
} }
public void SetCurrentTenant(Tenant tenant) public void SetCurrentTenant(Tenant tenant)

View File

@ -74,15 +74,23 @@ namespace ASC.Core
} }
public UserManager(
IHttpContextAccessor httpContextAccessor,
IUserService service,
TenantManager tenantManager,
PermissionContext permissionContext,
UserManagerConstants userManagerConstants) : this(service, tenantManager, permissionContext, userManagerConstants)
{
Accessor = httpContextAccessor;
}
public UserManager( public UserManager(
IUserService service, IUserService service,
IHttpContextAccessor httpContextAccessor,
TenantManager tenantManager, TenantManager tenantManager,
PermissionContext permissionContext, PermissionContext permissionContext,
UserManagerConstants userManagerConstants) UserManagerConstants userManagerConstants)
{ {
UserService = service; UserService = service;
Accessor = httpContextAccessor;
TenantManager = tenantManager; TenantManager = tenantManager;
PermissionContext = permissionContext; PermissionContext = permissionContext;
UserManagerConstants = userManagerConstants; UserManagerConstants = userManagerConstants;

View File

@ -8,7 +8,10 @@ namespace ASC.Core.Common.EF.Model
[Table("feed_users")] [Table("feed_users")]
public class FeedUsers : BaseEntity public class FeedUsers : BaseEntity
{ {
[Column("feed_id")]
public string FeedId { get; set; } public string FeedId { get; set; }
[Column("user_id")]
public Guid UserId { get; set; } public Guid UserId { get; set; }
public override object[] GetKeys() => new object[] { FeedId, UserId }; public override object[] GetKeys() => new object[] { FeedId, UserId };

View File

@ -49,7 +49,8 @@ namespace ASC.Feed.Data
public TenantUtil TenantUtil { get; } public TenantUtil TenantUtil { get; }
public FeedDbContext FeedDbContext { get; } public FeedDbContext FeedDbContext { get; }
public FeedAggregateDataProvider(DbContextManager<FeedDbContext> dbContextManager) public FeedAggregateDataProvider(AuthContext authContext, TenantManager tenantManager, TenantUtil tenantUtil, DbContextManager<FeedDbContext> dbContextManager)
: this(authContext, tenantManager, tenantUtil)
{ {
FeedDbContext = dbContextManager.Get(Constants.FeedDbId); FeedDbContext = dbContextManager.Get(Constants.FeedDbId);
} }
@ -124,7 +125,10 @@ namespace ASC.Feed.Data
if (f.ClearRightsBeforeInsert) if (f.ClearRightsBeforeInsert)
{ {
var fu = FeedDbContext.FeedUsers.Where(r => r.FeedId == f.Id).FirstOrDefault(); var fu = FeedDbContext.FeedUsers.Where(r => r.FeedId == f.Id).FirstOrDefault();
FeedDbContext.FeedUsers.Remove(fu); if (fu != null)
{
FeedDbContext.FeedUsers.Remove(fu);
}
} }
FeedDbContext.AddOrUpdate(r => r.FeedAggregates, feedAggregate); FeedDbContext.AddOrUpdate(r => r.FeedAggregates, feedAggregate);
@ -382,6 +386,8 @@ namespace ASC.Feed.Data
{ {
public static DIHelper AddFeedAggregateDataProvider(this DIHelper services) public static DIHelper AddFeedAggregateDataProvider(this DIHelper services)
{ {
services.TryAddScoped<FeedAggregateDataProvider>();
return services return services
.AddAuthContextService() .AddAuthContextService()
.AddTenantManagerService() .AddTenantManagerService()

View File

@ -16,6 +16,31 @@ namespace ASC.Feed.Configuration
public TimeSpan RemovePeriod { get; set; } public TimeSpan RemovePeriod { get; set; }
public static FeedSettings GetInstance(IConfiguration configuration) => configuration.GetSetting<FeedSettings>("feed"); public static FeedSettings GetInstance(IConfiguration configuration)
{
var result = configuration.GetSetting<FeedSettings>("feed");
if (string.IsNullOrEmpty(result.ServerRoot))
{
result.ServerRoot = "http://*/";
}
if (result.AggregatePeriod == TimeSpan.Zero)
{
result.AggregatePeriod = TimeSpan.FromMinutes(5);
}
if (result.AggregateInterval == TimeSpan.Zero)
{
result.AggregateInterval = TimeSpan.FromDays(14);
}
if (result.RemovePeriod == TimeSpan.Zero)
{
result.RemovePeriod = TimeSpan.FromDays(1);
}
return result;
}
} }
} }

View File

@ -120,9 +120,6 @@ namespace ASC.Feed.Aggregator
commonLinkUtility.Initialize(cfg.ServerRoot); commonLinkUtility.Initialize(cfg.ServerRoot);
var tenantManager = scope.ServiceProvider.GetService<TenantManager>(); var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
var userManager = scope.ServiceProvider.GetService<UserManager>();
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
var authManager = scope.ServiceProvider.GetService<AuthManager>();
var feedAggregateDataProvider = scope.ServiceProvider.GetService<FeedAggregateDataProvider>(); var feedAggregateDataProvider = scope.ServiceProvider.GetService<FeedAggregateDataProvider>();
var start = DateTime.UtcNow; var start = DateTime.UtcNow;
@ -159,6 +156,9 @@ namespace ASC.Feed.Aggregator
} }
tenantManager.SetCurrentTenant(tenant); tenantManager.SetCurrentTenant(tenant);
var userManager = scope.ServiceProvider.GetService<UserManager>();
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
var authManager = scope.ServiceProvider.GetService<AuthManager>();
var users = userManager.GetUsers(); var users = userManager.GetUsers();
var feeds = Attempt(10, () => module.GetFeeds(new FeedFilter(fromTime, toTime) { Tenant = tenant }).Where(r => r.Item1 != null).ToList()); var feeds = Attempt(10, () => module.GetFeeds(new FeedFilter(fromTime, toTime) { Tenant = tenant }).Where(r => r.Item1 != null).ToList());

View File

@ -1226,7 +1226,7 @@ namespace ASC.Files.Core.Data
.Where(r => r.Security.Security == Security.FileShare.Restrict) .Where(r => r.Security.Security == Security.FileShare.Restrict)
.Where(r => r.Security.TimeStamp >= from && r.Security.TimeStamp <= to); .Where(r => r.Security.TimeStamp >= from && r.Security.TimeStamp <= to);
return q4.Select(ToFileWithShare).ToList(); return q2.Select(ToFileWithShare).ToList().Union(q4.Select(ToFileWithShare).ToList());
} }
public IEnumerable<int> GetTenantsWithFeeds(DateTime fromTime) public IEnumerable<int> GetTenantsWithFeeds(DateTime fromTime)

View File

@ -40,6 +40,7 @@ namespace ASC.Files.Service
) )
.AddJsonFile("appsettings.json") .AddJsonFile("appsettings.json")
.AddJsonFile($"appsettings.{env}.json", true) .AddJsonFile($"appsettings.{env}.json", true)
.AddJsonFile($"appsettings.services.json", true)
.AddJsonFile("storage.json") .AddJsonFile("storage.json")
.AddJsonFile("notify.json") .AddJsonFile("notify.json")
.AddJsonFile("kafka.json") .AddJsonFile("kafka.json")
@ -63,7 +64,7 @@ namespace ASC.Files.Service
diHelper diHelper
.AddFeedAggregatorService(); .AddFeedAggregatorService();
services.AddAutofac(hostContext.Configuration, hostContext.HostingEnvironment.ContentRootPath, false, false, "search.json", "feed.json"); services.AddAutofac(hostContext.Configuration, hostContext.HostingEnvironment.ContentRootPath, true, false, "search.json", "feed.json");
}) })
.UseConsoleLifetime() .UseConsoleLifetime()
.Build(); .Build();

View File

@ -1,7 +1,7 @@
{ {
"components": [ "components": [
{ {
"type": "ASC.Files.Service., ASC.Files.Service", "type": "ASC.Files.Service.Core.FilesModule, ASC.Files.Service",
"services": [ "services": [
{ {
"type": "ASC.Feed.Aggregator.Modules.IFeedModule, ASC.Feed.Aggregator" "type": "ASC.Feed.Aggregator.Modules.IFeedModule, ASC.Feed.Aggregator"