Quota: fix

This commit is contained in:
Nikolay Rechkin 2022-10-06 15:55:47 +03:00
parent f655620485
commit 4ebd5323c0
6 changed files with 16 additions and 13 deletions

View File

@ -173,14 +173,10 @@ public class LdapObjectExtension
Title = !string.IsNullOrEmpty(title) ? title : string.Empty,
Location = !string.IsNullOrEmpty(location) ? location : string.Empty,
WorkFromDate = _tenantUtil.DateTimeNow(),
ContactsList = contacts
ContactsList = contacts,
LdapQouta = quota
};
if (quotaSettings.EnableUserQuota)
{
_settingsManager.SaveForUser(new UserQuotaSettings { UserQuota = quota }, Guid.Parse(user.Sid));
}
if (!string.IsNullOrEmpty(firstName))
{
user.FirstName = firstName.Length > MAX_NUMBER_OF_SYMBOLS

View File

@ -155,6 +155,13 @@ public class LdapUserManager
portalUserInfo = _userManager.SaveUserInfo(ldapUserInfo);
var quotaSettings = _settingsManager.Load<TenantUserQuotaSettings>();
if (quotaSettings.EnableUserQuota)
{
_settingsManager.SaveForUser(new UserQuotaSettings { UserQuota = ldapUserInfo.LdapQouta }, ldapUserInfo.Id);
}
var passwordHash = LdapUtils.GeneratePassword();
_logger.DebugSetUserPassword(portalUserInfo.Id);

View File

@ -197,13 +197,12 @@ public class EmployeeFullDtoHelper : EmployeeDtoHelper
await Init(result, userInfo);
result.UsedSpace = Math.Max(0, _userManager.FindUserQuotaRows(_context.Tenant.Id, userInfo.IsLDAP() ? Guid.Parse(userInfo.Sid) : userInfo.Id).Where(r => !string.IsNullOrEmpty(r.Tag)).Sum(r => r.Counter));
var quotaSettings = _settingsManager.Load<TenantUserQuotaSettings>();
var userQuotaSettings = _settingsManager.LoadForUser<UserQuotaSettings>(userInfo);
if (quotaSettings.EnableUserQuota)
{
result.UsedSpace = Math.Max(0, _userManager.FindUserQuotaRows(_context.Tenant.Id, userInfo.Id).Where(r => !string.IsNullOrEmpty(r.Tag)).Sum(r => r.Counter));
var userQuotaSettings = _settingsManager.LoadForUser<UserQuotaSettings>(userInfo);
result.QuotaLimit = userQuotaSettings != null ? userQuotaSettings.UserQuota : quotaSettings.DefaultUserQuota;
}

View File

@ -71,6 +71,7 @@ public sealed class UserInfo : IDirectRecipient, ICloneable, IMapFrom<User>
public string MobilePhone { get; set; }
public MobilePhoneActivationStatus MobilePhoneActivationStatus { get; set; }
public string Sid { get; set; } // LDAP user identificator
public long LdapQouta { get; set; } // LDAP user quota attribute
public string SsoNameId { get; set; } // SSO SAML user identificator
public string SsoSessionId { get; set; } // SSO SAML user session identificator
public DateTime CreateDate { get; set; }

View File

@ -256,7 +256,7 @@ public class DbSettingsManager
public T LoadForUser<T>(UserInfo user) where T : class, ISettings<T>
{
return LoadSettingsFor<T>(TenantID, user.IsLDAP() ? Guid.Parse(user.Sid) : user.Id);
return LoadSettingsFor<T>(TenantID, user.Id);
}
public T LoadForDefaultTenant<T>() where T : class, ISettings<T>
@ -286,7 +286,7 @@ public class DbSettingsManager
public bool SaveForUser<T>(T data, UserInfo user) where T : class, ISettings<T>
{
return SaveSettingsFor(data, TenantID, user.IsLDAP() ? Guid.Parse(user.Sid) : user.Id);
return SaveSettingsFor(data, TenantID, user.Id);
}
public bool SaveForDefaultTenant<T>(T data) where T : class, ISettings<T>

View File

@ -426,7 +426,7 @@ internal class FileDao : AbstractDao, IFileDao<int>
if (quotaLimit != -1)
{
var userUsedSpace = Math.Max(0, _userManager.FindUserQuotaRows(TenantID,user.IsLDAP() ? Guid.Parse(user.Sid) : user.Id).Where(r => !string.IsNullOrEmpty(r.Tag)).Sum(r => r.Counter));
var userUsedSpace = Math.Max(0, _userManager.FindUserQuotaRows(TenantID, user.Id).Where(r => !string.IsNullOrEmpty(r.Tag)).Sum(r => r.Counter));
if (quotaLimit - userUsedSpace < file.ContentLength)
{