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)
{
return GetCurrentTenant(throwIfNotFound, HttpContextAccessor.HttpContext);
return GetCurrentTenant(throwIfNotFound, HttpContextAccessor?.HttpContext);
}
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(
IUserService service,
IHttpContextAccessor httpContextAccessor,
TenantManager tenantManager,
PermissionContext permissionContext,
UserManagerConstants userManagerConstants)
{
UserService = service;
Accessor = httpContextAccessor;
TenantManager = tenantManager;
PermissionContext = permissionContext;
UserManagerConstants = userManagerConstants;

View File

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

View File

@ -49,7 +49,8 @@ namespace ASC.Feed.Data
public TenantUtil TenantUtil { 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);
}
@ -124,7 +125,10 @@ namespace ASC.Feed.Data
if (f.ClearRightsBeforeInsert)
{
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);
@ -382,6 +386,8 @@ namespace ASC.Feed.Data
{
public static DIHelper AddFeedAggregateDataProvider(this DIHelper services)
{
services.TryAddScoped<FeedAggregateDataProvider>();
return services
.AddAuthContextService()
.AddTenantManagerService()

View File

@ -16,6 +16,31 @@ namespace ASC.Feed.Configuration
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);
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 start = DateTime.UtcNow;
@ -159,6 +156,9 @@ namespace ASC.Feed.Aggregator
}
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 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.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)

View File

@ -40,6 +40,7 @@ namespace ASC.Files.Service
)
.AddJsonFile("appsettings.json")
.AddJsonFile($"appsettings.{env}.json", true)
.AddJsonFile($"appsettings.services.json", true)
.AddJsonFile("storage.json")
.AddJsonFile("notify.json")
.AddJsonFile("kafka.json")
@ -63,7 +64,7 @@ namespace ASC.Files.Service
diHelper
.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()
.Build();

View File

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