private void DeleteUsers(BXUserCollection users, bool deleteProvider)
	{
		//if (!currentUserCanDeleteUser)
		//    throw new PublicException(GetMessageRaw("ExceptionText.YouDontHaveRightsToDeleteUsers"));

		foreach (Bitrix.Security.BXUser u in users)
		{
			if (u == null)
				throw new PublicException(GetMessageRaw("ExceptionText.UserIsNotFound"));

			try
			{
				u.Delete(deleteProvider);
			}
			catch (Exception ex)
			{
				throw new PublicException(GetMessageRaw("ExceptionText.DeletionOfUserFailed"), ex);
			}
		}
	}
	private DataTable FillTable(BXUserCollection collection, int startRowIndex, List<string> visibleColumnsList)
	{
		if (collection == null)
            collection = new BXUserCollection();

		DataTable result = new DataTable();

        result.Columns.Add("num", typeof(int));
        result.Columns.Add("ID", typeof(int));
        result.Columns.Add("Active", typeof(string));
        result.Columns.Add("Login", typeof(string));
        result.Columns.Add("FirstName", typeof(string));
        result.Columns.Add("LastName", typeof(string));
        result.Columns.Add("Email", typeof(string));
        result.Columns.Add("DateActive", typeof(DateTime));

		foreach (BXUser t in collection)
		{
			DataRow r = result.NewRow();
			r["num"] = startRowIndex++;
            BXUser s = (BXUser)t;
            r["ID"] = s.UserId;
            r["Active"] = s.IsApproved ? GetMessageRaw("Kernel.Yes") : GetMessageRaw("Kernel.No");
            r["Login"] = s.UserName;
            r["FirstName"] = s.FirstName;
            r["LastName"] = s.LastName;
            r["Email"] = s.Email;
            r["DateActive"] = s.LastActivityDate;
			
			result.Rows.Add(r);
		}

		return result;
	}
	protected void AuthUserGridView_PopupMenuClick(object sender, Bitrix.UI.BXPopupMenuClickEventArgs e)
	{
		successMessage.Visible = false;
		e.Cancel = true;
		BXGridView grid = AuthUserGridView;
		DataKey drv = grid.DataKeys[e.EventRowIndex];

		int userId = 0;
		try
		{
			userId = (int)drv.Value;
		}
		catch
		{
			errorMessage.AddErrorMessage(GetMessage("ErrorMessage.CodeOfUserIsNotFound"));
			return;
		}


		if (e.CommandName == "edit" || e.CommandName == "view")
		{
			Response.Redirect(string.Format("AuthUsersEdit.aspx?id={0}", userId));
			return;
		}

		if (e.CommandName != "delete" && e.CommandName != "deleteProvider")
			return;

		//Delete
		try
		{
			if (!CanDelete(userId))
				throw new PublicException(GetMessageRaw("ExceptionText.YouDontHaveRightsToDeleteUsers"));

			BXUserCollection users = new BXUserCollection();
			users.Add(Bitrix.Security.BXUser.GetById(userId));
			DeleteUsers(users, e.CommandName == "deleteProvider");
			successMessage.Visible = true;
		}
		catch (Exception ex)
		{
			ProcessException(ex);
		}
		grid.MarkAsChanged();
	}