diff --git a/common/ASC.Core.Common/Context/Impl/UserManager.cs b/common/ASC.Core.Common/Context/Impl/UserManager.cs index f65d7c6265..0195e0e34d 100644 --- a/common/ASC.Core.Common/Context/Impl/UserManager.cs +++ b/common/ASC.Core.Common/Context/Impl/UserManager.cs @@ -331,14 +331,22 @@ public class UserManager return findUsers.ToArray(); } - public async Task UpdateUserInfo(UserInfo u) + public async Task UpdateUserInfo(UserInfo u, bool afterInvite = false) { if (IsSystemUser(u.Id)) { return SystemUsers[u.Id]; } - _permissionContext.DemandPermissions(new UserSecurityProvider(u.Id), Constants.Action_EditUser); + if (afterInvite) + { + _permissionContext.DemandPermissions(new UserSecurityProvider(u.Id, this.GetUserType(u.Id)), Constants.Action_AddRemoveUser); + } + else + { + _permissionContext.DemandPermissions(new UserSecurityProvider(u.Id), Constants.Action_EditUser); + } + if (u.Status == EmployeeStatus.Terminated && u.Id == _tenantManager.GetCurrentTenant().OwnerId) { diff --git a/web/ASC.Web.Core/Users/UserManagerWrapper.cs b/web/ASC.Web.Core/Users/UserManagerWrapper.cs index 21695fbc8d..b243a550f3 100644 --- a/web/ASC.Web.Core/Users/UserManagerWrapper.cs +++ b/web/ASC.Web.Core/Users/UserManagerWrapper.cs @@ -193,7 +193,7 @@ public sealed class UserManagerWrapper UserInfo newUserInfo; if (updateExising) { - newUserInfo = await _userManager.UpdateUserInfo(userInfo); + newUserInfo = await _userManager.UpdateUserInfo(userInfo, true); } else {