DI: TenantManager
This commit is contained in:
parent
c171e2c903
commit
2f5fe4301e
@ -81,17 +81,17 @@ namespace ASC.Core.Common.Billing
|
||||
}
|
||||
}
|
||||
|
||||
public static string CreateCoupon()
|
||||
public static string CreateCoupon(TenantManager tenantManager)
|
||||
{
|
||||
return CreatePromotionAsync().Result;
|
||||
return CreatePromotionAsync(tenantManager).Result;
|
||||
}
|
||||
|
||||
private static async Task<string> CreatePromotionAsync()
|
||||
private static async Task<string> CreatePromotionAsync(TenantManager tenantManager)
|
||||
{
|
||||
try
|
||||
{
|
||||
using var httpClient = PrepaireClient();
|
||||
using var content = new StringContent(await Promotion.GeneratePromotion(Percent, Schedule), Encoding.Default, "application/json");
|
||||
using var content = new StringContent(await Promotion.GeneratePromotion(tenantManager, Percent, Schedule), Encoding.Default, "application/json");
|
||||
using var response = await httpClient.PostAsync(string.Format("{0}/promotions/", ApiVersion), content);
|
||||
if (!response.IsSuccessStatusCode)
|
||||
throw new Exception(response.ReasonPhrase);
|
||||
@ -195,11 +195,11 @@ namespace ASC.Core.Common.Billing
|
||||
public int PublishToAffiliatesNetwork { get; set; }
|
||||
public int AutoApply { get; set; }
|
||||
|
||||
public static async Task<string> GeneratePromotion(int percent, int schedule)
|
||||
public static async Task<string> GeneratePromotion(TenantManager tenantManager, int percent, int schedule)
|
||||
{
|
||||
try
|
||||
{
|
||||
var tenant = CoreContext.TenantManager.GetCurrentTenant();
|
||||
var tenant = tenantManager.GetCurrentTenant();
|
||||
var startDate = DateTime.UtcNow.Date;
|
||||
var endDate = startDate.AddDays(schedule);
|
||||
var code = tenant.TenantAlias;
|
||||
|
@ -39,11 +39,13 @@ namespace ASC.Core.Notify.Jabber
|
||||
|
||||
public UserManager UserManager { get; }
|
||||
public AuthContext AuthContext { get; }
|
||||
public TenantManager TenantManager { get; }
|
||||
|
||||
public JabberServiceClient(UserManager userManager, AuthContext authContext)
|
||||
public JabberServiceClient(UserManager userManager, AuthContext authContext, TenantManager tenantManager)
|
||||
{
|
||||
UserManager = userManager;
|
||||
AuthContext = authContext;
|
||||
TenantManager = tenantManager;
|
||||
}
|
||||
|
||||
private static bool IsServiceProbablyNotAvailable()
|
||||
@ -207,9 +209,9 @@ namespace ASC.Core.Notify.Jabber
|
||||
}
|
||||
}
|
||||
|
||||
private static int GetCurrentTenantId()
|
||||
private int GetCurrentTenantId()
|
||||
{
|
||||
return CoreContext.TenantManager.GetCurrentTenant().TenantId;
|
||||
return TenantManager.GetCurrentTenant().TenantId;
|
||||
}
|
||||
|
||||
private string GetCurrentUserName()
|
||||
|
@ -52,7 +52,8 @@ namespace ASC.Core.Notify
|
||||
try
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var userManager = scope.ServiceProvider.GetService<UserManager>();
|
||||
var userManager = scope.ServiceProvider.GetService<UserManager>();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var result = SendResult.OK;
|
||||
var username = userManager.GetUsers(new Guid(message.Recipient.ID)).UserName;
|
||||
if (string.IsNullOrEmpty(username))
|
||||
@ -71,7 +72,7 @@ namespace ASC.Core.Notify
|
||||
CreationDate = DateTime.UtcNow.Ticks,
|
||||
};
|
||||
|
||||
var tenant = CoreContext.TenantManager.GetCurrentTenant(false);
|
||||
var tenant = tenantManager.GetCurrentTenant(false);
|
||||
m.Tenant = tenant == null ? Tenant.DEFAULT_TENANT : tenant.TenantId;
|
||||
|
||||
sender.Send(m);
|
||||
|
@ -32,19 +32,29 @@ using ASC.Core.Common.Notify.Push;
|
||||
using ASC.Core.Configuration;
|
||||
using ASC.Notify.Messages;
|
||||
using ASC.Notify.Sinks;
|
||||
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace ASC.Core.Common.Notify
|
||||
{
|
||||
class PushSenderSink : Sink
|
||||
{
|
||||
private readonly ILog _log = LogManager.GetLogger("ASC");
|
||||
private bool configured = true;
|
||||
|
||||
|
||||
|
||||
public PushSenderSink(IServiceProvider serviceProvider)
|
||||
{
|
||||
ServiceProvider = serviceProvider;
|
||||
}
|
||||
|
||||
public IServiceProvider ServiceProvider { get; }
|
||||
|
||||
public override SendResponse ProcessMessage(INoticeMessage message)
|
||||
{
|
||||
try
|
||||
{
|
||||
{
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
|
||||
var notification = new PushNotification
|
||||
{
|
||||
Module = GetTagValue<PushModule>(message, PushConstants.PushModuleTagName),
|
||||
@ -61,10 +71,10 @@ namespace ASC.Core.Common.Notify
|
||||
{
|
||||
using var pushClient = new PushServiceClient();
|
||||
pushClient.EnqueueNotification(
|
||||
CoreContext.TenantManager.GetCurrentTenant().TenantId,
|
||||
message.Recipient.ID,
|
||||
notification,
|
||||
new List<string>());
|
||||
tenantManager.GetCurrentTenant().TenantId,
|
||||
message.Recipient.ID,
|
||||
notification,
|
||||
new List<string>());
|
||||
}
|
||||
catch (InvalidOperationException)
|
||||
{
|
||||
|
@ -51,27 +51,12 @@ namespace ASC.Data.Reassigns
|
||||
protected static readonly ProgressQueue Queue = new ProgressQueue(1, TimeSpan.FromMinutes(5), true);
|
||||
|
||||
public IHttpContextAccessor HttpContextAccessor { get; }
|
||||
public MessageService MessageService { get; }
|
||||
public StudioNotifyService StudioNotifyService { get; }
|
||||
public UserManager UserManager { get; }
|
||||
public SecurityContext SecurityContext { get; }
|
||||
public WebItemSecurity WebItemSecurity { get; }
|
||||
public AuthContext AuthContext { get; }
|
||||
public IServiceProvider ServiceProvider { get; }
|
||||
|
||||
public QueueWorker(
|
||||
IHttpContextAccessor httpContextAccessor,
|
||||
MessageService messageService,
|
||||
StudioNotifyService studioNotifyService,
|
||||
UserManager userManager,
|
||||
SecurityContext securityContext,
|
||||
WebItemSecurity webItemSecurity)
|
||||
public QueueWorker(IHttpContextAccessor httpContextAccessor, IServiceProvider serviceProvider)
|
||||
{
|
||||
HttpContextAccessor = httpContextAccessor;
|
||||
MessageService = messageService;
|
||||
StudioNotifyService = studioNotifyService;
|
||||
UserManager = userManager;
|
||||
SecurityContext = securityContext;
|
||||
WebItemSecurity = webItemSecurity;
|
||||
ServiceProvider = serviceProvider;
|
||||
}
|
||||
|
||||
public string GetProgressItemId(int tenantId, Guid userId)
|
||||
@ -121,50 +106,33 @@ namespace ASC.Data.Reassigns
|
||||
|
||||
public class QueueWorkerReassign : QueueWorker<ReassignProgressItem>
|
||||
{
|
||||
public UserPhotoManager UserPhotoManager { get; }
|
||||
public QueueWorkerRemove QueueWorkerRemove { get; }
|
||||
public QueueWorkerReassign(
|
||||
IHttpContextAccessor httpContextAccessor,
|
||||
MessageService messageService,
|
||||
StudioNotifyService studioNotifyService,
|
||||
UserManager userManager,
|
||||
UserPhotoManager userPhotoManager,
|
||||
QueueWorkerRemove queueWorkerRemove,
|
||||
SecurityContext securityContext,
|
||||
WebItemSecurity webItemSecurity) :
|
||||
base(httpContextAccessor, messageService, studioNotifyService, userManager, securityContext, webItemSecurity)
|
||||
IServiceProvider serviceProvider,
|
||||
QueueWorkerRemove queueWorkerRemove) :
|
||||
base(httpContextAccessor, serviceProvider)
|
||||
{
|
||||
UserPhotoManager = userPhotoManager;
|
||||
QueueWorkerRemove = queueWorkerRemove;
|
||||
}
|
||||
|
||||
public ReassignProgressItem Start(int tenantId, Guid fromUserId, Guid toUserId, Guid currentUserId, bool deleteProfile)
|
||||
{
|
||||
return Start(tenantId, fromUserId, () => new ReassignProgressItem(HttpContextAccessor.HttpContext, MessageService, this, QueueWorkerRemove, StudioNotifyService, UserManager, UserPhotoManager, SecurityContext, tenantId, fromUserId, toUserId, currentUserId, deleteProfile)) as ReassignProgressItem;
|
||||
return Start(tenantId, fromUserId, () => new ReassignProgressItem(ServiceProvider, HttpContextAccessor.HttpContext, this, QueueWorkerRemove, tenantId, fromUserId, toUserId, currentUserId, deleteProfile)) as ReassignProgressItem;
|
||||
}
|
||||
}
|
||||
public class QueueWorkerRemove : QueueWorker<RemoveProgressItem>
|
||||
{
|
||||
public QueueWorkerRemove(IHttpContextAccessor httpContextAccessor,
|
||||
MessageService messageService,
|
||||
StudioNotifyService studioNotifyService,
|
||||
UserManager userManager,
|
||||
SecurityContext securityContext,
|
||||
WebItemSecurity webItemSecurity,
|
||||
WebItemManagerSecurity webItemManagerSecurity,
|
||||
StorageFactory storageFactory) :
|
||||
base(httpContextAccessor, messageService, studioNotifyService, userManager, securityContext, webItemSecurity)
|
||||
public QueueWorkerRemove(
|
||||
IHttpContextAccessor httpContextAccessor,
|
||||
IServiceProvider serviceProvider) :
|
||||
base(httpContextAccessor, serviceProvider)
|
||||
{
|
||||
WebItemManagerSecurity = webItemManagerSecurity;
|
||||
StorageFactory = storageFactory;
|
||||
}
|
||||
|
||||
public WebItemManagerSecurity WebItemManagerSecurity { get; }
|
||||
public StorageFactory StorageFactory { get; }
|
||||
|
||||
public RemoveProgressItem Start(int tenantId, UserInfo user, Guid currentUserId, bool notify)
|
||||
{
|
||||
return Start(tenantId, user.ID, () => new RemoveProgressItem(HttpContextAccessor.HttpContext, MessageService, this, StudioNotifyService, SecurityContext, WebItemManagerSecurity, StorageFactory, tenantId, user, currentUserId, notify)) as RemoveProgressItem;
|
||||
return Start(tenantId, user.ID, () => new RemoveProgressItem(ServiceProvider, HttpContextAccessor.HttpContext, this, tenantId, user, currentUserId, notify)) as RemoveProgressItem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -32,8 +32,10 @@ using ASC.Common.Threading.Progress;
|
||||
using ASC.Core;
|
||||
using ASC.Core.Tenants;
|
||||
using ASC.Core.Users;
|
||||
using ASC.Data.Storage;
|
||||
using ASC.MessagingSystem;
|
||||
//using ASC.Web.CRM.Core;
|
||||
using ASC.Web.Core;
|
||||
//using ASC.Web.CRM.Core;
|
||||
using ASC.Web.Core.Users;
|
||||
//using ASC.Web.Files.Services.WCFService;
|
||||
//using ASC.Web.Projects.Core.Engine;
|
||||
@ -41,6 +43,7 @@ using ASC.Web.Studio.Core.Notify;
|
||||
//using Autofac;
|
||||
//using CrmDaoFactory = ASC.CRM.Core.Dao.DaoFactory;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace ASC.Data.Reassigns
|
||||
{
|
||||
@ -63,32 +66,19 @@ namespace ASC.Data.Reassigns
|
||||
public bool IsCompleted { get; set; }
|
||||
public Guid FromUser { get; }
|
||||
public Guid ToUser { get; }
|
||||
|
||||
public MessageService MessageService { get; }
|
||||
public IServiceProvider ServiceProvider { get; }
|
||||
public QueueWorkerRemove QueueWorkerRemove { get; }
|
||||
public StudioNotifyService StudioNotifyService { get; }
|
||||
public UserManager UserManager { get; }
|
||||
public UserPhotoManager UserPhotoManager { get; }
|
||||
public SecurityContext SecurityContext { get; }
|
||||
|
||||
public ReassignProgressItem(
|
||||
IServiceProvider serviceProvider,
|
||||
HttpContext context,
|
||||
MessageService messageService,
|
||||
QueueWorkerReassign queueWorkerReassign,
|
||||
QueueWorkerRemove queueWorkerRemove,
|
||||
StudioNotifyService studioNotifyService,
|
||||
UserManager userManager,
|
||||
UserPhotoManager userPhotoManager,
|
||||
SecurityContext securityContext,
|
||||
int tenantId, Guid fromUserId, Guid toUserId, Guid currentUserId, bool deleteProfile)
|
||||
{
|
||||
{
|
||||
ServiceProvider = serviceProvider;
|
||||
_context = context;
|
||||
MessageService = messageService;
|
||||
QueueWorkerRemove = queueWorkerRemove;
|
||||
StudioNotifyService = studioNotifyService;
|
||||
UserManager = userManager;
|
||||
UserPhotoManager = userPhotoManager;
|
||||
SecurityContext = securityContext;
|
||||
_httpHeaders = QueueWorker.GetHttpHeaders(context.Request);
|
||||
|
||||
_tenantId = tenantId;
|
||||
@ -109,15 +99,24 @@ namespace ASC.Data.Reassigns
|
||||
|
||||
public void RunJob()
|
||||
{
|
||||
var logger = LogManager.GetLogger("ASC.Web");
|
||||
var logger = LogManager.GetLogger("ASC.Web");
|
||||
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var tenant = tenantManager.SetCurrentTenant(_tenantId);
|
||||
|
||||
var messageService = scope.ServiceProvider.GetService<MessageService>();
|
||||
var studioNotifyService = scope.ServiceProvider.GetService<StudioNotifyService>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
var userManager = scope.ServiceProvider.GetService<UserManager>();
|
||||
var userPhotoManager = scope.ServiceProvider.GetService<UserPhotoManager>();
|
||||
|
||||
try
|
||||
{
|
||||
Percentage = 0;
|
||||
Status = ProgressStatus.Started;
|
||||
|
||||
var tenant = CoreContext.TenantManager.SetCurrentTenant(_tenantId);
|
||||
SecurityContext.AuthenticateMe(_tenantId, _currentUserId);
|
||||
securityContext.AuthenticateMe(_tenantId, _currentUserId);
|
||||
|
||||
logger.InfoFormat("reassignment of data from {0} to {1}", FromUser, ToUser);
|
||||
|
||||
@ -146,14 +145,14 @@ namespace ASC.Data.Reassigns
|
||||
//}
|
||||
}
|
||||
|
||||
SendSuccessNotify();
|
||||
SendSuccessNotify(userManager, studioNotifyService, messageService);
|
||||
|
||||
Percentage = 100;
|
||||
Status = ProgressStatus.Done;
|
||||
|
||||
if (_deleteProfile)
|
||||
{
|
||||
DeleteUserProfile(tenant);
|
||||
DeleteUserProfile(userManager, userPhotoManager, messageService);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
@ -161,7 +160,7 @@ namespace ASC.Data.Reassigns
|
||||
logger.Error(ex);
|
||||
Status = ProgressStatus.Failed;
|
||||
Error = ex.Message;
|
||||
SendErrorNotify(ex.Message);
|
||||
SendErrorNotify(userManager, studioNotifyService, ex.Message);
|
||||
}
|
||||
finally
|
||||
{
|
||||
@ -175,43 +174,43 @@ namespace ASC.Data.Reassigns
|
||||
return MemberwiseClone();
|
||||
}
|
||||
|
||||
private void SendSuccessNotify()
|
||||
private void SendSuccessNotify(UserManager userManager, StudioNotifyService studioNotifyService, MessageService messageService)
|
||||
{
|
||||
var fromUser = UserManager.GetUsers(FromUser);
|
||||
var toUser = UserManager.GetUsers(ToUser);
|
||||
var fromUser = userManager.GetUsers(FromUser);
|
||||
var toUser = userManager.GetUsers(ToUser);
|
||||
|
||||
StudioNotifyService.SendMsgReassignsCompleted(_currentUserId, fromUser, toUser);
|
||||
studioNotifyService.SendMsgReassignsCompleted(_currentUserId, fromUser, toUser);
|
||||
|
||||
var fromUserName = fromUser.DisplayUserName(false, UserManager);
|
||||
var toUserName = toUser.DisplayUserName(false, UserManager);
|
||||
var fromUserName = fromUser.DisplayUserName(false, userManager);
|
||||
var toUserName = toUser.DisplayUserName(false, userManager);
|
||||
|
||||
if (_httpHeaders != null)
|
||||
MessageService.Send(_httpHeaders, MessageAction.UserDataReassigns, MessageTarget.Create(FromUser), new[] { fromUserName, toUserName });
|
||||
messageService.Send(_httpHeaders, MessageAction.UserDataReassigns, MessageTarget.Create(FromUser), new[] { fromUserName, toUserName });
|
||||
else
|
||||
MessageService.Send(MessageAction.UserDataReassigns, MessageTarget.Create(FromUser), fromUserName, toUserName);
|
||||
messageService.Send(MessageAction.UserDataReassigns, MessageTarget.Create(FromUser), fromUserName, toUserName);
|
||||
}
|
||||
|
||||
private void SendErrorNotify(string errorMessage)
|
||||
private void SendErrorNotify(UserManager userManager, StudioNotifyService studioNotifyService, string errorMessage)
|
||||
{
|
||||
var fromUser = UserManager.GetUsers(FromUser);
|
||||
var toUser = UserManager.GetUsers(ToUser);
|
||||
var fromUser = userManager.GetUsers(FromUser);
|
||||
var toUser = userManager.GetUsers(ToUser);
|
||||
|
||||
StudioNotifyService.SendMsgReassignsFailed(_currentUserId, fromUser, toUser, errorMessage);
|
||||
studioNotifyService.SendMsgReassignsFailed(_currentUserId, fromUser, toUser, errorMessage);
|
||||
}
|
||||
|
||||
private void DeleteUserProfile(Tenant tenant)
|
||||
private void DeleteUserProfile(UserManager userManager, UserPhotoManager userPhotoManager, MessageService messageService)
|
||||
{
|
||||
var user = UserManager.GetUsers(FromUser);
|
||||
var userName = user.DisplayUserName(false, UserManager);
|
||||
var user = userManager.GetUsers(FromUser);
|
||||
var userName = user.DisplayUserName(false, userManager);
|
||||
|
||||
UserPhotoManager.RemovePhoto(user.ID);
|
||||
UserManager.DeleteUser(user.ID);
|
||||
userPhotoManager.RemovePhoto(user.ID);
|
||||
userManager.DeleteUser(user.ID);
|
||||
QueueWorkerRemove.Start(_tenantId, user, _currentUserId, false);
|
||||
|
||||
if (_httpHeaders != null)
|
||||
MessageService.Send(_httpHeaders, MessageAction.UserDeleted, MessageTarget.Create(FromUser), new[] { userName });
|
||||
messageService.Send(_httpHeaders, MessageAction.UserDeleted, MessageTarget.Create(FromUser), new[] { userName });
|
||||
else
|
||||
MessageService.Send(MessageAction.UserDeleted, MessageTarget.Create(FromUser), userName);
|
||||
messageService.Send(MessageAction.UserDeleted, MessageTarget.Create(FromUser), userName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -43,12 +43,12 @@ using ASC.Web.Core;
|
||||
using ASC.Web.Studio.Core.Notify;
|
||||
//using CrmDaoFactory = ASC.CRM.Core.Dao.DaoFactory;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace ASC.Data.Reassigns
|
||||
{
|
||||
public class RemoveProgressItem : IProgressItem
|
||||
{
|
||||
private readonly HttpContext _context;
|
||||
private readonly Dictionary<string, string> _httpHeaders;
|
||||
|
||||
private readonly int _tenantId;
|
||||
@ -65,35 +65,17 @@ namespace ASC.Data.Reassigns
|
||||
public double Percentage { get; set; }
|
||||
public bool IsCompleted { get; set; }
|
||||
public Guid FromUser { get; }
|
||||
public IServiceProvider ServiceProvider { get; }
|
||||
public UserInfo User { get; }
|
||||
|
||||
public MessageService MessageService { get; }
|
||||
public StudioNotifyService StudioNotifyService { get; }
|
||||
public UserManager UserManager { get; }
|
||||
public SecurityContext SecurityContext { get; }
|
||||
public WebItemSecurity WebItemSecurity { get; }
|
||||
public AuthContext AuthContext { get; }
|
||||
public WebItemManagerSecurity WebItemManagerSecurity { get; }
|
||||
public StorageFactory StorageFactory { get; }
|
||||
|
||||
public RemoveProgressItem(
|
||||
IServiceProvider serviceProvider,
|
||||
HttpContext context,
|
||||
MessageService messageService,
|
||||
QueueWorkerRemove queueWorkerRemove,
|
||||
StudioNotifyService studioNotifyService,
|
||||
SecurityContext securityContext,
|
||||
WebItemManagerSecurity webItemManagerSecurity,
|
||||
StorageFactory storageFactory,
|
||||
int tenantId, UserInfo user, Guid currentUserId, bool notify)
|
||||
{
|
||||
_context = context;
|
||||
MessageService = messageService;
|
||||
StudioNotifyService = studioNotifyService;
|
||||
SecurityContext = securityContext;
|
||||
WebItemManagerSecurity = webItemManagerSecurity;
|
||||
StorageFactory = storageFactory;
|
||||
_httpHeaders = QueueWorker.GetHttpHeaders(context.Request);
|
||||
|
||||
{
|
||||
_httpHeaders = QueueWorker.GetHttpHeaders(context.Request);
|
||||
ServiceProvider = serviceProvider;
|
||||
_tenantId = tenantId;
|
||||
User = user;
|
||||
FromUser = user.ID;
|
||||
@ -113,18 +95,27 @@ namespace ASC.Data.Reassigns
|
||||
|
||||
public void RunJob()
|
||||
{
|
||||
var logger = LogManager.GetLogger("ASC.Web");
|
||||
var logger = LogManager.GetLogger("ASC.Web");
|
||||
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
var tenant = tenantManager.SetCurrentTenant(_tenantId);
|
||||
|
||||
var messageService = scope.ServiceProvider.GetService<MessageService>();
|
||||
var studioNotifyService = scope.ServiceProvider.GetService<StudioNotifyService>();
|
||||
var securityContext = scope.ServiceProvider.GetService<SecurityContext>();
|
||||
var webItemManagerSecurity = scope.ServiceProvider.GetService<WebItemManagerSecurity>();
|
||||
var storageFactory = scope.ServiceProvider.GetService<StorageFactory>();
|
||||
|
||||
try
|
||||
{
|
||||
Percentage = 0;
|
||||
Status = ProgressStatus.Started;
|
||||
Status = ProgressStatus.Started;
|
||||
|
||||
var tenant = CoreContext.TenantManager.SetCurrentTenant(_tenantId);
|
||||
SecurityContext.AuthenticateMe(_tenantId, _currentUserId);
|
||||
securityContext.AuthenticateMe(_tenantId, _currentUserId);
|
||||
|
||||
long crmSpace;
|
||||
GetUsageSpace(out var docsSpace, out var mailSpace, out var talkSpace);
|
||||
GetUsageSpace(webItemManagerSecurity, out var docsSpace, out var mailSpace, out var talkSpace);
|
||||
|
||||
logger.InfoFormat("deleting user data for {0} ", FromUser);
|
||||
|
||||
@ -158,9 +149,9 @@ namespace ASC.Data.Reassigns
|
||||
logger.Info("deleting of data from talk");
|
||||
|
||||
Percentage = 99;
|
||||
DeleteTalkStorage();
|
||||
DeleteTalkStorage(storageFactory);
|
||||
|
||||
SendSuccessNotify(docsSpace, crmSpace, mailSpace, talkSpace);
|
||||
SendSuccessNotify(studioNotifyService, messageService, docsSpace, crmSpace, mailSpace, talkSpace);
|
||||
|
||||
Percentage = 100;
|
||||
Status = ProgressStatus.Done;
|
||||
@ -170,7 +161,7 @@ namespace ASC.Data.Reassigns
|
||||
logger.Error(ex);
|
||||
Status = ProgressStatus.Failed;
|
||||
Error = ex.Message;
|
||||
SendErrorNotify(ex.Message);
|
||||
SendErrorNotify(studioNotifyService, ex.Message);
|
||||
}
|
||||
finally
|
||||
{
|
||||
@ -184,11 +175,11 @@ namespace ASC.Data.Reassigns
|
||||
return MemberwiseClone();
|
||||
}
|
||||
|
||||
private void GetUsageSpace(out long docsSpace, out long mailSpace, out long talkSpace)
|
||||
private void GetUsageSpace(WebItemManagerSecurity webItemManagerSecurity, out long docsSpace, out long mailSpace, out long talkSpace)
|
||||
{
|
||||
docsSpace = mailSpace = talkSpace = 0;
|
||||
|
||||
var webItems = WebItemManagerSecurity.GetItems(Web.Core.WebZones.WebZoneType.All, ItemAvailableState.All);
|
||||
var webItems = webItemManagerSecurity.GetItems(Web.Core.WebZones.WebZoneType.All, ItemAvailableState.All);
|
||||
|
||||
foreach (var item in webItems)
|
||||
{
|
||||
@ -217,7 +208,7 @@ namespace ASC.Data.Reassigns
|
||||
}
|
||||
}
|
||||
|
||||
private void DeleteTalkStorage()
|
||||
private void DeleteTalkStorage(StorageFactory storageFactory)
|
||||
{
|
||||
using var md5 = MD5.Create();
|
||||
var data = md5.ComputeHash(Encoding.Default.GetBytes(FromUser.ToString()));
|
||||
@ -231,7 +222,7 @@ namespace ASC.Data.Reassigns
|
||||
|
||||
var md5Hash = sBuilder.ToString();
|
||||
|
||||
var storage = StorageFactory.GetStorage(_tenantId.ToString(CultureInfo.InvariantCulture), "talk");
|
||||
var storage = storageFactory.GetStorage(_tenantId.ToString(CultureInfo.InvariantCulture), "talk");
|
||||
|
||||
if (storage != null && storage.IsDirectory(md5Hash))
|
||||
{
|
||||
@ -239,23 +230,23 @@ namespace ASC.Data.Reassigns
|
||||
}
|
||||
}
|
||||
|
||||
private void SendSuccessNotify(long docsSpace, long crmSpace, long mailSpace, long talkSpace)
|
||||
private void SendSuccessNotify(StudioNotifyService studioNotifyService, MessageService messageService, long docsSpace, long crmSpace, long mailSpace, long talkSpace)
|
||||
{
|
||||
if (_notify)
|
||||
StudioNotifyService.SendMsgRemoveUserDataCompleted(_currentUserId, User, _userName,
|
||||
studioNotifyService.SendMsgRemoveUserDataCompleted(_currentUserId, User, _userName,
|
||||
docsSpace, crmSpace, mailSpace, talkSpace);
|
||||
|
||||
if (_httpHeaders != null)
|
||||
MessageService.Send(_httpHeaders, MessageAction.UserDataRemoving, MessageTarget.Create(FromUser), new[] { _userName });
|
||||
messageService.Send(_httpHeaders, MessageAction.UserDataRemoving, MessageTarget.Create(FromUser), new[] { _userName });
|
||||
else
|
||||
MessageService.Send(MessageAction.UserDataRemoving, MessageTarget.Create(FromUser), _userName);
|
||||
messageService.Send(MessageAction.UserDataRemoving, MessageTarget.Create(FromUser), _userName);
|
||||
}
|
||||
|
||||
private void SendErrorNotify(string errorMessage)
|
||||
private void SendErrorNotify(StudioNotifyService studioNotifyService, string errorMessage)
|
||||
{
|
||||
if (!_notify) return;
|
||||
|
||||
StudioNotifyService.SendMsgRemoveUserDataFailed(_currentUserId, User, _userName, errorMessage);
|
||||
studioNotifyService.SendMsgRemoveUserDataFailed(_currentUserId, User, _userName, errorMessage);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -87,6 +87,7 @@ namespace ASC.Api.Settings
|
||||
private static DistributedTaskQueue SMTPTasks { get; } = new DistributedTaskQueue("smtpOperations");
|
||||
public Tenant Tenant { get { return ApiContext.Tenant; } }
|
||||
public ApiContext ApiContext { get; }
|
||||
public IServiceProvider ServiceProvider { get; }
|
||||
public LogManager LogManager { get; }
|
||||
public MessageService MessageService { get; }
|
||||
public StudioNotifyService StudioNotifyService { get; }
|
||||
@ -126,7 +127,9 @@ namespace ASC.Api.Settings
|
||||
public EmailValidationKeyProvider EmailValidationKeyProvider { get; }
|
||||
public TenantUtil TenantUtil { get; }
|
||||
|
||||
public SettingsController(LogManager logManager,
|
||||
public SettingsController(
|
||||
IServiceProvider serviceProvider,
|
||||
LogManager logManager,
|
||||
MessageService messageService,
|
||||
StudioNotifyService studioNotifyService,
|
||||
ApiContext apiContext,
|
||||
@ -165,6 +168,7 @@ namespace ASC.Api.Settings
|
||||
EmailValidationKeyProvider emailValidationKeyProvider,
|
||||
TenantUtil tenantUtil)
|
||||
{
|
||||
ServiceProvider = serviceProvider;
|
||||
LogManager = logManager;
|
||||
MessageService = messageService;
|
||||
StudioNotifyService = studioNotifyService;
|
||||
@ -246,7 +250,7 @@ namespace ASC.Api.Settings
|
||||
throw new InvalidOperationException(Resource.LdapSettingsTooManyOperations);
|
||||
}
|
||||
|
||||
var op = new QuotaSync(Tenant.TenantId, StorageFactory, StorageFactoryConfig);
|
||||
var op = new QuotaSync(Tenant.TenantId, ServiceProvider);
|
||||
|
||||
quotaTasks.QueueTask(op.RunJob, op.GetDistributedTask());
|
||||
}
|
||||
|
@ -26,6 +26,7 @@
|
||||
|
||||
using System;
|
||||
using ASC.Common.Caching;
|
||||
using ASC.Core;
|
||||
using ASC.Core.Common.Notify.Push;
|
||||
|
||||
namespace ASC.Web.Core.Mobile
|
||||
@ -36,13 +37,16 @@ namespace ASC.Web.Core.Mobile
|
||||
private readonly TimeSpan cacheExpiration;
|
||||
private readonly IMobileAppInstallRegistrator registrator;
|
||||
|
||||
public CachedMobileAppInstallRegistrator(IMobileAppInstallRegistrator registrator)
|
||||
: this(registrator, TimeSpan.FromMinutes(30))
|
||||
public TenantManager TenantManager { get; }
|
||||
|
||||
public CachedMobileAppInstallRegistrator(IMobileAppInstallRegistrator registrator, TenantManager tenantManager)
|
||||
: this(registrator, TimeSpan.FromMinutes(30), tenantManager)
|
||||
{
|
||||
}
|
||||
|
||||
public CachedMobileAppInstallRegistrator(IMobileAppInstallRegistrator registrator, TimeSpan cacheExpiration)
|
||||
public CachedMobileAppInstallRegistrator(IMobileAppInstallRegistrator registrator, TimeSpan cacheExpiration, TenantManager tenantManager)
|
||||
{
|
||||
TenantManager = tenantManager;
|
||||
this.registrator = registrator ?? throw new ArgumentNullException("registrator");
|
||||
this.cacheExpiration = cacheExpiration;
|
||||
}
|
||||
@ -72,11 +76,11 @@ namespace ASC.Web.Core.Mobile
|
||||
return isRegistered;
|
||||
}
|
||||
|
||||
private static string GetCacheKey(string userEmail, MobileAppType? appType)
|
||||
private string GetCacheKey(string userEmail, MobileAppType? appType)
|
||||
{
|
||||
var cacheKey = appType.HasValue ? userEmail + "/" + appType.ToString() : userEmail;
|
||||
|
||||
return string.Format("{0}:mobile:{1}", ASC.Core.CoreContext.TenantManager.GetCurrentTenant().TenantId, cacheKey);
|
||||
return string.Format("{0}:mobile:{1}", TenantManager.GetCurrentTenant().TenantId, cacheKey);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -123,6 +123,7 @@ namespace ASC.Web.Studio.Core.Notify
|
||||
{
|
||||
try
|
||||
{
|
||||
//fix
|
||||
using var scope = ServiceProvider.CreateScope();
|
||||
var webItemSecurity = scope.ServiceProvider.GetService<WebItemSecurity>();
|
||||
// culture
|
||||
|
@ -301,7 +301,7 @@ namespace ASC.Web.Studio.Core.Notify
|
||||
client.SendNoticeAsync(Actions.UserHasJoin, null);
|
||||
}
|
||||
|
||||
public void SendJoinMsg(int tenantId, string email, EmployeeType emplType)
|
||||
public void SendJoinMsg(string email, EmployeeType emplType)
|
||||
{
|
||||
var inviteUrl = CommonLinkUtility.GetConfirmationUrl(EmailValidationKeyProvider, email, ConfirmType.EmpInvite, (int)emplType, AuthContext.CurrentAccount.ID)
|
||||
+ string.Format("&emplType={0}", emplType);
|
||||
@ -314,7 +314,7 @@ namespace ASC.Web.Studio.Core.Notify
|
||||
new[] { EMailSenderName },
|
||||
new TagValue(Tags.InviteLink, inviteUrl),
|
||||
TagValues.GreenButton(greenButtonText, inviteUrl),
|
||||
TagValues.SendFrom(tenantId, UserManager, AuthContext));
|
||||
TagValues.SendFrom(TenantManager, UserManager, AuthContext));
|
||||
}
|
||||
|
||||
public void UserInfoAddedAfterInvite(int tenantId, UserInfo newUserInfo)
|
||||
@ -438,7 +438,7 @@ namespace ASC.Web.Studio.Core.Notify
|
||||
TagValues.GreenButton(greenButtonText, confirmationUrl),
|
||||
new TagValue(Tags.UserName, newUserInfo.FirstName.HtmlEncode()),
|
||||
new TagValue(CommonTags.Footer, footer),
|
||||
TagValues.SendFrom(tenantId, UserManager, AuthContext),
|
||||
TagValues.SendFrom(TenantManager, UserManager, AuthContext),
|
||||
new TagValue(CommonTags.Analytics, analytics));
|
||||
}
|
||||
|
||||
@ -474,7 +474,7 @@ namespace ASC.Web.Studio.Core.Notify
|
||||
TagValues.GreenButton(greenButtonText, confirmationUrl),
|
||||
new TagValue(Tags.UserName, newUserInfo.FirstName.HtmlEncode()),
|
||||
new TagValue(CommonTags.Footer, footer),
|
||||
TagValues.SendFrom(tenantId, UserManager, AuthContext),
|
||||
TagValues.SendFrom(TenantManager, UserManager, AuthContext),
|
||||
new TagValue(CommonTags.Analytics, analytics));
|
||||
}
|
||||
|
||||
@ -550,7 +550,7 @@ namespace ASC.Web.Studio.Core.Notify
|
||||
new TagValue(Tags.Message, message));
|
||||
}
|
||||
|
||||
public void SendAdminWelcome(UserInfo newUserInfo, int tenantId)
|
||||
public void SendAdminWelcome(UserInfo newUserInfo)
|
||||
{
|
||||
if (!UserManager.UserExists(newUserInfo)) return;
|
||||
|
||||
@ -591,7 +591,7 @@ namespace ASC.Web.Studio.Core.Notify
|
||||
}
|
||||
|
||||
tagValues.Add(new TagValue(Tags.UserName, newUserInfo.FirstName.HtmlEncode()));
|
||||
tagValues.Add(TagValues.SendFrom(tenantId, UserManager, AuthContext));
|
||||
tagValues.Add(TagValues.SendFrom(TenantManager, UserManager, AuthContext));
|
||||
|
||||
client.SendNoticeToAsync(
|
||||
notifyAction,
|
||||
@ -795,7 +795,7 @@ namespace ASC.Web.Studio.Core.Notify
|
||||
new TagValue(CommonTags.Culture, Thread.CurrentThread.CurrentUICulture.Name));
|
||||
}
|
||||
|
||||
public void SendUserWelcomePersonal(int tenantId, UserInfo newUserInfo)
|
||||
public void SendUserWelcomePersonal(UserInfo newUserInfo)
|
||||
{
|
||||
client.SendNoticeToAsync(
|
||||
CoreContext.Configuration.CustomMode ? Actions.PersonalCustomModeAfterRegistration1 : Actions.PersonalAfterRegistration1,
|
||||
@ -803,7 +803,7 @@ namespace ASC.Web.Studio.Core.Notify
|
||||
new[] { EMailSenderName },
|
||||
new TagValue(CommonTags.Footer, CoreContext.Configuration.CustomMode ? "personalCustomMode" : "personal"),
|
||||
new TagValue(CommonTags.MasterTemplate, "HtmlMasterPersonal"),
|
||||
TagValues.SendFrom(tenantId, UserManager, AuthContext));
|
||||
TagValues.SendFrom(TenantManager, UserManager, AuthContext));
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
@ -15,16 +15,18 @@ namespace ASC.Web.Core.Notify
|
||||
|
||||
public StudioNotifyHelper StudioNotifyHelper { get; }
|
||||
public AuthContext AuthContext { get; }
|
||||
public TenantManager TenantManager { get; }
|
||||
|
||||
static StudioNotifyServiceHelper()
|
||||
{
|
||||
cache = new KafkaCache<NotifyItem>();
|
||||
}
|
||||
|
||||
public StudioNotifyServiceHelper(StudioNotifyHelper studioNotifyHelper, AuthContext authContext)
|
||||
public StudioNotifyServiceHelper(StudioNotifyHelper studioNotifyHelper, AuthContext authContext, TenantManager tenantManager)
|
||||
{
|
||||
StudioNotifyHelper = studioNotifyHelper;
|
||||
AuthContext = authContext;
|
||||
TenantManager = tenantManager;
|
||||
}
|
||||
|
||||
public void SendNoticeToAsync(INotifyAction action, IRecipient[] recipients, string[] senderNames, params ITagValue[] args)
|
||||
@ -69,7 +71,7 @@ namespace ASC.Web.Core.Notify
|
||||
{
|
||||
var item = new NotifyItem
|
||||
{
|
||||
TenantId = CoreContext.TenantManager.GetCurrentTenant().TenantId,
|
||||
TenantId = TenantManager.GetCurrentTenant().TenantId,
|
||||
UserId = AuthContext.CurrentAccount.ID.ToString(),
|
||||
Action = (NotifyAction)action,
|
||||
CheckSubsciption = checkSubsciption
|
||||
|
@ -299,7 +299,7 @@ namespace ASC.Web.Studio.Core.Notify
|
||||
|
||||
coupon = SetupInfo.IsSecretEmail(userManager.GetUsers(tenant.OwnerId).Email)
|
||||
? tenant.TenantAlias
|
||||
: CouponManager.CreateCoupon();
|
||||
: CouponManager.CreateCoupon(tenantManager);
|
||||
|
||||
log.InfoFormat("end CreateCoupon to {0} coupon = {1}", tenant.TenantAlias, coupon);
|
||||
}
|
||||
|
@ -157,7 +157,7 @@ namespace ASC.Web.Studio.Core.Notify
|
||||
return new TagActionValue("TableItem" + number, action);
|
||||
}
|
||||
|
||||
public static ITagValue SendFrom(int tenantId, UserManager userManager, AuthContext authContext)
|
||||
public static ITagValue SendFrom(TenantManager tenantManager, UserManager userManager, AuthContext authContext)
|
||||
{
|
||||
return new TagValue(CommonTags.SendFrom,
|
||||
authContext.IsAuthenticated && authContext.CurrentAccount is IUserAccount
|
||||
@ -165,7 +165,7 @@ namespace ASC.Web.Studio.Core.Notify
|
||||
userManager.GetUsers(authContext.CurrentAccount.ID), false)
|
||||
.Replace(">", ">")
|
||||
.Replace("<", "<")
|
||||
: CoreContext.TenantManager.GetCurrentTenant().Name);
|
||||
: tenantManager.GetCurrentTenant().Name);
|
||||
}
|
||||
}
|
||||
}
|
@ -24,12 +24,14 @@
|
||||
*/
|
||||
|
||||
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using ASC.Common.Threading;
|
||||
using ASC.Core;
|
||||
using ASC.Data.Storage;
|
||||
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace ASC.Web.Studio.Core.Quota
|
||||
{
|
||||
public class QuotaSync
|
||||
@ -37,29 +39,32 @@ namespace ASC.Web.Studio.Core.Quota
|
||||
public const string TenantIdKey = "tenantID";
|
||||
protected DistributedTask TaskInfo { get; private set; }
|
||||
private int TenantId { get; set; }
|
||||
public StorageFactory StorageFactory { get; }
|
||||
public StorageFactoryConfig StorageFactoryConfig { get; }
|
||||
public IServiceProvider ServiceProvider { get; }
|
||||
|
||||
public QuotaSync(int tenantId, StorageFactory storageFactory, StorageFactoryConfig storageFactoryConfig)
|
||||
public QuotaSync(int tenantId, IServiceProvider serviceProvider)
|
||||
{
|
||||
TenantId = tenantId;
|
||||
StorageFactory = storageFactory;
|
||||
StorageFactoryConfig = storageFactoryConfig;
|
||||
TaskInfo = new DistributedTask();
|
||||
TaskInfo = new DistributedTask();
|
||||
ServiceProvider = serviceProvider;
|
||||
}
|
||||
|
||||
public void RunJob(DistributedTask _, CancellationToken cancellationToken)
|
||||
{
|
||||
CoreContext.TenantManager.SetCurrentTenant(TenantId);
|
||||
{
|
||||
var scope = ServiceProvider.CreateScope();
|
||||
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
|
||||
tenantManager.SetCurrentTenant(TenantId);
|
||||
|
||||
var storageFactoryConfig = scope.ServiceProvider.GetService<StorageFactoryConfig>();
|
||||
var storageFactory = scope.ServiceProvider.GetService<StorageFactory>();
|
||||
|
||||
var storageModules = StorageFactoryConfig.GetModuleList(string.Empty).ToList();
|
||||
var storageModules = storageFactoryConfig.GetModuleList(string.Empty).ToList();
|
||||
|
||||
foreach (var module in storageModules)
|
||||
{
|
||||
var storage = StorageFactory.GetStorage(TenantId.ToString(), module);
|
||||
var storage = storageFactory.GetStorage(TenantId.ToString(), module);
|
||||
storage.ResetQuota("");
|
||||
|
||||
var domains = StorageFactoryConfig.GetDomainList(string.Empty, module).ToList();
|
||||
var domains = storageFactoryConfig.GetDomainList(string.Empty, module).ToList();
|
||||
foreach (var domain in domains)
|
||||
{
|
||||
storage.ResetQuota(domain);
|
||||
|
@ -34,7 +34,7 @@ using ASC.Core.Tenants;
|
||||
|
||||
namespace ASC.Web.Core.Sms
|
||||
{
|
||||
public static class SmsKeyStorage
|
||||
public class SmsKeyStorage
|
||||
{
|
||||
public static readonly int KeyLength;
|
||||
public static readonly TimeSpan StoreInterval;
|
||||
@ -44,6 +44,8 @@ namespace ASC.Web.Core.Sms
|
||||
private static readonly ICache KeyCache = AscCache.Memory;
|
||||
private static readonly ICache CheckCache = AscCache.Memory;
|
||||
|
||||
public TenantManager TenantManager { get; }
|
||||
|
||||
static SmsKeyStorage()
|
||||
{
|
||||
if (!int.TryParse(ConfigurationManager.AppSettings["sms:keylength"], out KeyLength))
|
||||
@ -66,15 +68,20 @@ namespace ASC.Web.Core.Sms
|
||||
KeyCacheNotify.Subscribe(r => KeyCache.Remove(r.Key), CacheNotifyAction.Remove);
|
||||
}
|
||||
|
||||
private static string BuildCacheKey(string phone)
|
||||
public SmsKeyStorage(TenantManager tenantManager)
|
||||
{
|
||||
var tenant = CoreContext.TenantManager.GetCurrentTenant(false);
|
||||
TenantManager = tenantManager;
|
||||
}
|
||||
|
||||
private string BuildCacheKey(string phone)
|
||||
{
|
||||
var tenant = TenantManager.GetCurrentTenant(false);
|
||||
var tenantCache = tenant == null ? Tenant.DEFAULT_TENANT : tenant.TenantId;
|
||||
return "smskey" + phone + tenantCache;
|
||||
}
|
||||
|
||||
|
||||
public static bool GenerateKey(string phone, out string key)
|
||||
public bool GenerateKey(string phone, out string key)
|
||||
{
|
||||
if (string.IsNullOrEmpty(phone))
|
||||
{
|
||||
@ -99,7 +106,7 @@ namespace ASC.Web.Core.Sms
|
||||
}
|
||||
}
|
||||
|
||||
public static bool ExistsKey(string phone)
|
||||
public bool ExistsKey(string phone)
|
||||
{
|
||||
if (string.IsNullOrEmpty(phone))
|
||||
{
|
||||
@ -115,7 +122,7 @@ namespace ASC.Web.Core.Sms
|
||||
}
|
||||
|
||||
|
||||
public static Result ValidateKey(string phone, string key)
|
||||
public Result ValidateKey(string phone, string key)
|
||||
{
|
||||
key = (key ?? string.Empty).Trim();
|
||||
if (string.IsNullOrEmpty(phone) || string.IsNullOrEmpty(key))
|
||||
|
@ -42,19 +42,22 @@ namespace ASC.Web.Studio.Core.SMS
|
||||
public SecurityContext SecurityContext { get; }
|
||||
public TenantManager TenantManager { get; }
|
||||
public StudioSmsNotificationSettings StudioSmsNotificationSettings { get; }
|
||||
public SmsKeyStorage SmsKeyStorage { get; }
|
||||
|
||||
public SmsManager(
|
||||
UserManager userManager,
|
||||
TenantExtra tenantExtra,
|
||||
SecurityContext securityContext,
|
||||
TenantManager tenantManager,
|
||||
StudioSmsNotificationSettings studioSmsNotificationSettings)
|
||||
StudioSmsNotificationSettings studioSmsNotificationSettings,
|
||||
SmsKeyStorage smsKeyStorage)
|
||||
{
|
||||
UserManager = userManager;
|
||||
TenantExtra = tenantExtra;
|
||||
SecurityContext = securityContext;
|
||||
TenantManager = tenantManager;
|
||||
StudioSmsNotificationSettings = studioSmsNotificationSettings;
|
||||
SmsKeyStorage = smsKeyStorage;
|
||||
}
|
||||
|
||||
public string SaveMobilePhone(UserInfo user, string mobilePhone)
|
||||
@ -103,7 +106,7 @@ namespace ASC.Web.Studio.Core.SMS
|
||||
if (SmsKeyStorage.ExistsKey(mobilePhone) && !again) return;
|
||||
|
||||
if (!SmsKeyStorage.GenerateKey(mobilePhone, out var key)) throw new Exception(Resource.SmsTooMuchError);
|
||||
if (SmsSender.SendSMS(mobilePhone, string.Format(Resource.SmsAuthenticationMessageToUser, key)))
|
||||
if (SmsSender.SendSMS(TenantManager, mobilePhone, string.Format(Resource.SmsAuthenticationMessageToUser, key)))
|
||||
{
|
||||
TenantManager.SetTenantQuotaRow(new TenantQuotaRow { Tenant = TenantManager.GetCurrentTenant().TenantId, Path = "/sms", Counter = 1 }, true);
|
||||
}
|
||||
|
@ -39,7 +39,7 @@ namespace ASC.Web.Core.Sms
|
||||
private static readonly ILog Log = LogManager.GetLogger("ASC");
|
||||
|
||||
|
||||
public static bool SendSMS(string number, string message)
|
||||
public static bool SendSMS(TenantManager tenantManager, string number, string message)
|
||||
{
|
||||
if (string.IsNullOrEmpty(number))
|
||||
{
|
||||
@ -56,7 +56,7 @@ namespace ASC.Web.Core.Sms
|
||||
|
||||
if ("log".Equals(ConfigurationManager.AppSettings["core:notify:postman"], StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
var tenant = CoreContext.TenantManager.GetCurrentTenant(false);
|
||||
var tenant = tenantManager.GetCurrentTenant(false);
|
||||
var tenantId = tenant == null ? Tenant.DEFAULT_TENANT : tenant.TenantId;
|
||||
|
||||
Log.InfoFormat("Tenant {0} send sms to phoneNumber {1} Message: {2}", tenantId, number, message);
|
||||
|
@ -146,7 +146,7 @@ namespace ASC.Web.Core.Users
|
||||
|
||||
if (CoreContext.Configuration.Personal)
|
||||
{
|
||||
StudioNotifyService.SendUserWelcomePersonal(Tenant.TenantId, newUserInfo);
|
||||
StudioNotifyService.SendUserWelcomePersonal(newUserInfo);
|
||||
return newUserInfo;
|
||||
}
|
||||
|
||||
|
@ -68,7 +68,7 @@ namespace ASC.Web.Studio.UserControls.Statistics
|
||||
|
||||
public IEnumerable<TenantQuotaRow> GetQuotaRows(int tenant)
|
||||
{
|
||||
return CoreContext.TenantManager.FindTenantQuotaRows(new TenantQuotaRowQuery(tenant))
|
||||
return TenantManager.FindTenantQuotaRows(new TenantQuotaRowQuery(tenant))
|
||||
.Where(r => !string.IsNullOrEmpty(r.Tag) && new Guid(r.Tag) != Guid.Empty);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user