public AjaxResponse RemoveUser(Guid userID)
        {
            var resp = new AjaxResponse();

            try
            {
                SecurityContext.DemandPermissions(Constants.Action_AddRemoveUser);

                var user     = CoreContext.UserManager.GetUsers(userID);
                var userName = user.DisplayUserName(false);

                UserPhotoManager.RemovePhoto(Guid.Empty, userID);
                CoreContext.UserManager.DeleteUser(userID);

                MessageService.Send(HttpContext.Current.Request, MessageAction.UserDeleted, userName);

                resp.rs1 = "1";
                resp.rs2 = Resource.SuccessfullyDeleteUserInfoMessage;
            }
            catch (Exception e)
            {
                resp.rs1 = "0";
                resp.rs2 = HttpUtility.HtmlEncode(e.Message);
            }

            return(resp);
        }
        protected void DeleteProfile(object sender, EventArgs e)
        {
            try
            {
                SecurityContext.AuthenticateMe(ASC.Core.Configuration.Constants.CoreSystem);

                var user     = CoreContext.UserManager.GetUsers(UserId);
                var userName = user.DisplayUserName(false);

                UserPhotoManager.RemovePhoto(Guid.Empty, UserId);
                CoreContext.UserManager.DeleteUser(UserId);

                MessageService.Send(HttpContext.Current.Request, MessageInitiator.System, MessageAction.UserDeleted, userName);

                operationBlock.Visible = false;
                result.InnerHtml       = Resource.DeleteProfileSuccess;
            }
            catch (Exception ex)
            {
                result.InnerHtml = ex.Message;
            }
            finally
            {
                Auth.ProcessLogout();
            }
        }
        protected void DeleteProfile(object sender, EventArgs e)
        {
            try
            {
                SecurityContext.AuthenticateMe(ASC.Core.Configuration.Constants.CoreSystem);

                var user = CoreContext.UserManager.GetUsers(UserId);
                user.Status = EmployeeStatus.Terminated;
                CoreContext.UserManager.SaveUserInfo(user);

                MessageService.Send(HttpContext.Current.Request, MessageInitiator.System, MessageAction.UsersUpdatedStatus, MessageTarget.Create(user.ID), user.DisplayUserName(false));

                if (CoreContext.Configuration.Personal)
                {
                    UserPhotoManager.RemovePhoto(user.ID);
                    CoreContext.UserManager.DeleteUser(user.ID);
                    MessageService.Send(Request, MessageAction.UserDeleted, MessageTarget.Create(user.ID), user.DisplayUserName(false));
                }

                operationBlock.Visible = false;
                result.Visible         = true;
                errorBlock.Visible     = false;
            }
            catch (Exception ex)
            {
                operationBlock.Visible = false;
                result.Visible         = false;
                errorBlock.InnerHtml   = ex.Message;
                errorBlock.Visible     = true;
            }
            finally
            {
                Auth.ProcessLogout();
            }
        }
Пример #4
0
        public EmployeeWraperFull DeleteMember(string userid)
        {
            SecurityContext.DemandPermissions(Core.Users.Constants.Action_AddRemoveUser);

            var user = GetUserInfo(userid);

            if (CoreContext.UserManager.IsSystemUser(user.ID) || user.IsLDAP())
            {
                throw new SecurityException();
            }

            if (user.Status != EmployeeStatus.Terminated)
            {
                throw new Exception("The user is not suspended");
            }

            var userName = user.DisplayUserName(false);

            UserPhotoManager.RemovePhoto(Guid.Empty, user.ID);
            CoreContext.UserManager.DeleteUser(user.ID);

            MessageService.Send(Request, MessageAction.UserDeleted, userName);

            return(new EmployeeWraperFull(user));
        }
Пример #5
0
        public IEnumerable <EmployeeWraperFull> RemoveUsers(IEnumerable <Guid> userIds)
        {
            SecurityContext.DemandPermissions(Core.Users.Constants.Action_AddRemoveUser);

            var users = userIds.Select(userId => CoreContext.UserManager.GetUsers(userId))
                        .Where(u => !CoreContext.UserManager.IsSystemUser(u.ID) && !u.IsLDAP())
                        .ToList();

            var userNames = users.Select(x => x.DisplayUserName(false)).ToList();

            foreach (var user in users)
            {
                if (user.Status != EmployeeStatus.Terminated)
                {
                    continue;
                }

                UserPhotoManager.RemovePhoto(Guid.Empty, user.ID);
                CoreContext.UserManager.DeleteUser(user.ID);
            }

            MessageService.Send(Request, MessageAction.UsersDeleted, userNames);

            return(users.Select(user => new EmployeeWraperFull(user)).ToSmartList());
        }
Пример #6
0
        public EmployeeWraperFull DeleteMemberPhoto(string userid)
        {
            var user = GetUserInfo(userid);

            UserPhotoManager.RemovePhoto(Guid.Empty, user.ID);
            CoreContext.UserManager.SaveUserInfo(user);
            return(new EmployeeWraperFull(user));
        }
Пример #7
0
        public EmployeeWraperFull DeleteMember(string userid)
        {
            SecurityContext.DemandPermissions(Core.Users.Constants.Action_AddRemoveUser);

            var user = GetUserInfo(userid);

            user.Status = EmployeeStatus.Terminated;
            UserPhotoManager.RemovePhoto(Guid.Empty, user.ID);
            CoreContext.UserManager.DeleteUser(user.ID);
            return(new EmployeeWraperFull(user));
        }
Пример #8
0
        public EmployeeWraperFull DeleteMemberPhoto(string userid)
        {
            var user = GetUserInfo(userid);

            UserPhotoManager.RemovePhoto(Guid.Empty, user.ID);

            CoreContext.UserManager.SaveUserInfo(user);
            MessageService.Send(_context, MessageAction.UserDeletedAvatar, user.DisplayUserName(false));

            return(new EmployeeWraperFull(user));
        }
Пример #9
0
        public EmployeeWraperFull DeleteMember(string userid)
        {
            SecurityContext.DemandPermissions(Core.Users.Constants.Action_AddRemoveUser);

            var user = GetUserInfo(userid);

            user.Status = EmployeeStatus.Terminated;

            var userName = user.DisplayUserName(false);

            UserPhotoManager.RemovePhoto(Guid.Empty, user.ID);
            CoreContext.UserManager.DeleteUser(user.ID);

            MessageService.Send(_context, MessageAction.UserDeleted, userName);

            return(new EmployeeWraperFull(user));
        }
Пример #10
0
        public IEnumerable <EmployeeWraperFull> RemoveUsers(IEnumerable <Guid> userIds)
        {
            var users = userIds
                        .Where(userId => !userId.Equals(Core.Users.Constants.LostUser.ID))
                        .Select(userId => CoreContext.UserManager.GetUsers(userId))
                        .ToList();

            foreach (var user in users)
            {
                if (user.Status == EmployeeStatus.Terminated) // you can remove only terminated users
                {
                    UserPhotoManager.RemovePhoto(Guid.Empty, user.ID);
                    CoreContext.UserManager.DeleteUser(user.ID);
                }
            }
            return(users.Select(user => new EmployeeWraperFull(user)).ToSmartList());
        }
Пример #11
0
        private void DeleteUserProfile(UserManager userManager, UserPhotoManager userPhotoManager, MessageService messageService, MessageTarget messageTarget, DisplayUserSettingsHelper displayUserSettingsHelper)
        {
            var user     = userManager.GetUsers(FromUser);
            var userName = user.DisplayUserName(false, displayUserSettingsHelper);

            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 });
            }
            else
            {
                messageService.Send(MessageAction.UserDeleted, messageTarget.Create(FromUser), userName);
            }
        }
        private void DeleteUserProfile(Tenant tenant)
        {
            var user     = CoreContext.UserManager.GetUsers(_tenantId, FromUser);
            var userName = user.DisplayUserName(false);

            UserPhotoManager.RemovePhoto(tenant, user.ID);
            CoreContext.UserManager.DeleteUser(tenant, user.ID);
            QueueWorkerRemove.Start(_tenantId, user, _currentUserId, false);

            if (_httpHeaders != null)
            {
                MessageService.Send(_httpHeaders, MessageAction.UserDeleted, MessageTarget.Create(FromUser), new[] { userName });
            }
            else
            {
                MessageService.Send(MessageAction.UserDeleted, MessageTarget.Create(FromUser), userName);
            }
        }
Пример #13
0
        public EmployeeWraperFull DeleteMemberPhoto(string userid)
        {
            var user = GetUserInfo(userid);

            if (CoreContext.UserManager.IsSystemUser(user.ID))
            {
                throw new SecurityException();
            }

            SecurityContext.DemandPermissions(new UserSecurityProvider(user.ID), Core.Users.Constants.Action_EditUser);

            UserPhotoManager.RemovePhoto(Guid.Empty, user.ID);

            CoreContext.UserManager.SaveUserInfo(user);
            MessageService.Send(Request, MessageAction.UserDeletedAvatar, user.DisplayUserName(false));

            return(new EmployeeWraperFull(user));
        }
Пример #14
0
        public AjaxResponse RemoveUser(Guid userID)
        {
            var resp = new AjaxResponse();

            try
            {
                SecurityContext.DemandPermissions(ASC.Core.Users.Constants.Action_AddRemoveUser);
                UserPhotoManager.RemovePhoto(Guid.Empty, userID);
                CoreContext.UserManager.DeleteUser(userID);

                resp.rs1 = "1";
                resp.rs2 = Resource.SuccessfullyDeleteUserInfoMessage;
            }
            catch (Exception e)
            {
                resp.rs1 = "0";
                resp.rs2 = HttpUtility.HtmlEncode(e.Message);
            }

            return(resp);
        }
Пример #15
0
        protected void DeleteProfile(object sender, EventArgs e)
        {
            try
            {
                var uid = User.ID;
                SecurityContext.AuthenticateMe(ASC.Core.Configuration.Constants.CoreSystem);

                UserPhotoManager.RemovePhoto(Guid.Empty, uid);
                CoreContext.UserManager.DeleteUser(uid);

                operationBlock.Visible = false;
                result.InnerHtml       = Resources.Resource.DeleteProfileSuccess;
            }
            catch (Exception ex)
            {
                result.InnerHtml = ex.Message;
            }
            finally
            {
                SecurityContext.Logout();
                CookiesManager.ClearCookies(CookiesType.AuthKey);
            }
        }
Пример #16
0
        public IEnumerable <EmployeeWraperFull> RemoveUsers(IEnumerable <Guid> userIds)
        {
            var users = userIds
                        .Where(userId => !userId.Equals(Core.Users.Constants.LostUser.ID))
                        .Select(userId => CoreContext.UserManager.GetUsers(userId))
                        .ToList();

            var userNames = users.Select(x => x.DisplayUserName(false)).ToList();

            foreach (var user in users)
            {
                if (user.Status != EmployeeStatus.Terminated)
                {
                    continue;
                }

                UserPhotoManager.RemovePhoto(Guid.Empty, user.ID);
                CoreContext.UserManager.DeleteUser(user.ID);
            }

            MessageService.Send(_context, MessageAction.UsersDeleted, userNames);

            return(users.Select(user => new EmployeeWraperFull(user)).ToSmartList());
        }
Пример #17
0
        private void SyncLdapAvatar()
        {
            SetProgress(90, Resource.LdapSettingsStatusUpdatingUserPhotos);

            if (!LDAPSettings.LdapMapping.ContainsKey(LdapSettings.MappingFields.AvatarAttribute))
            {
                var ph = LdapCurrentUserPhotos.Load();

                if (ph.CurrentPhotos == null || !ph.CurrentPhotos.Any())
                {
                    return;
                }

                foreach (var guid in ph.CurrentPhotos.Keys)
                {
                    Logger.InfoFormat("SyncLdapAvatar() Removing photo for '{0}'", guid);
                    UserPhotoManager.RemovePhoto(guid);
                    UserPhotoManager.ResetThumbnailSettings(guid);
                }

                ph.CurrentPhotos = null;
                ph.Save();
                return;
            }

            var photoSettings = LdapCurrentUserPhotos.Load();

            if (photoSettings.CurrentPhotos == null)
            {
                photoSettings.CurrentPhotos = new Dictionary <Guid, string>();
            }

            var ldapUsers      = Importer.AllDomainUsers.Where(x => !x.IsDisabled);
            var step           = 5.0 / ldapUsers.Count();
            var currentPercent = 90.0;

            foreach (var ldapUser in ldapUsers)
            {
                var image = ldapUser.GetValue(LDAPSettings.LdapMapping[LdapSettings.MappingFields.AvatarAttribute], true);

                if (image == null || image.GetType() != typeof(byte[]))
                {
                    continue;
                }

                string hash;
                using (MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider())
                {
                    hash = Convert.ToBase64String(md5.ComputeHash((byte[])image));
                }

                var user = CoreContext.UserManager.GetUserBySid(ldapUser.Sid);

                Logger.DebugFormat("SyncLdapAvatar() Found photo for '{0}'", ldapUser.Sid);

                if (photoSettings.CurrentPhotos.ContainsKey(user.ID) && photoSettings.CurrentPhotos[user.ID] == hash)
                {
                    Logger.Debug("SyncLdapAvatar() Same hash, skipping.");
                    continue;
                }

                try
                {
                    SetProgress((int)(currentPercent += step),
                                string.Format("{0}: {1}", Resource.LdapSettingsStatusSavingUserPhoto, UserFormatter.GetUserName(user, DisplayUserNameFormat.Default)));
                    UserPhotoManager.ResetThumbnailSettings(user.ID);
                    UserPhotoManager.SaveOrUpdatePhoto(user.ID, (byte[])image);

                    if (photoSettings.CurrentPhotos.ContainsKey(user.ID))
                    {
                        photoSettings.CurrentPhotos[user.ID] = hash;
                    }
                    else
                    {
                        photoSettings.CurrentPhotos.Add(user.ID, hash);
                    }
                }
                catch
                {
                    Logger.DebugFormat("SyncLdapAvatar() Couldn't save photo for '{0}'", user.ID);
                    if (photoSettings.CurrentPhotos.ContainsKey(user.ID))
                    {
                        photoSettings.CurrentPhotos.Remove(user.ID);
                    }
                }
            }

            photoSettings.Save();
        }