Merge branch '6.1.3' of https://github.com/umbraco/Umbraco-CMS into 6.1.3
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.Design.WebControls;
|
||||
using System.Web.UI.WebControls;
|
||||
using Umbraco.Core.IO;
|
||||
using umbraco.cms.businesslogic.member;
|
||||
@@ -144,8 +145,14 @@ namespace umbraco.cms.presentation.members
|
||||
{
|
||||
var oldEmail = _document.Email.ToLower();
|
||||
var newEmail = MemberEmail.Text.ToLower();
|
||||
|
||||
var requireUniqueEmail = Membership.Providers[Member.UmbracoMemberProviderName].RequiresUniqueEmail;
|
||||
var howManyMembersWithEmail = Member.GetMembersFromEmail(newEmail).Length;
|
||||
|
||||
var howManyMembersWithEmail = 0;
|
||||
var membersWithEmail = Member.GetMembersFromEmail(newEmail);
|
||||
if (membersWithEmail != null)
|
||||
howManyMembersWithEmail = membersWithEmail.Length;
|
||||
|
||||
if (((oldEmail == newEmail && howManyMembersWithEmail > 1) ||
|
||||
(oldEmail != newEmail && howManyMembersWithEmail > 0))
|
||||
&& requireUniqueEmail)
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
using System.Web.UI.WebControls;
|
||||
using Examine.LuceneEngine.SearchCriteria;
|
||||
using Examine.SearchCriteria;
|
||||
using umbraco.cms.businesslogic.member;
|
||||
using System.Web.Security;
|
||||
|
||||
namespace umbraco.presentation.umbraco.members
|
||||
{
|
||||
public partial class MemberSearch : System.Web.UI.UserControl
|
||||
public partial class MemberSearch : UserControl
|
||||
{
|
||||
protected void Page_Load(object sender, EventArgs e)
|
||||
{
|
||||
@@ -19,46 +18,30 @@ namespace umbraco.presentation.umbraco.members
|
||||
ButtonSearch.Text = ui.Text("search");
|
||||
}
|
||||
|
||||
protected void ButtonSearch_Click(object sender, System.EventArgs e)
|
||||
protected void ButtonSearch_Click(object sender, EventArgs e)
|
||||
{
|
||||
resultsPane.Visible = true;
|
||||
|
||||
if (!Member.InUmbracoMemberMode())
|
||||
if (Member.InUmbracoMemberMode())
|
||||
{
|
||||
|
||||
IEnumerable<MemberSearchResult> results;
|
||||
if (searchQuery.Text.Contains("@"))
|
||||
{
|
||||
results = from MembershipUser x in Membership.FindUsersByEmail(searchQuery.Text)
|
||||
select new MemberSearchResult() { Id = x.UserName, Email = x.Email, LoginName = x.UserName, Name = x.UserName };
|
||||
}
|
||||
else
|
||||
{
|
||||
results = from MembershipUser x in Membership.FindUsersByName(searchQuery.Text + "%")
|
||||
select new MemberSearchResult() { Id = x.UserName, Email = x.Email, LoginName = x.UserName, Name = x.UserName };
|
||||
}
|
||||
|
||||
rp_members.DataSource = results;
|
||||
rp_members.DataBind();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
string query = searchQuery.Text.ToLower();
|
||||
var query = searchQuery.Text.ToLower();
|
||||
var internalSearcher = UmbracoContext.Current.InternalMemberSearchProvider;
|
||||
|
||||
IEnumerable<MemberSearchResult> results;
|
||||
if (!String.IsNullOrEmpty(query))
|
||||
if (String.IsNullOrEmpty(query) == false)
|
||||
{
|
||||
var criteria = internalSearcher.CreateSearchCriteria("member", Examine.SearchCriteria.BooleanOperation.And);
|
||||
var operation = criteria.Field("__nodeName", query.MultipleCharacterWildcard());
|
||||
results = internalSearcher.Search(operation.Compile()).Select(x => new MemberSearchResult()
|
||||
{
|
||||
Id = x["id"],
|
||||
Name = x["nodeName"],
|
||||
Email = x["email"],
|
||||
LoginName = x["loginName"]
|
||||
});
|
||||
var criteria = internalSearcher.CreateSearchCriteria("member", BooleanOperation.Or);
|
||||
var fields = new[] {"id", "__nodeName", "email"};
|
||||
var term = new[] {query.ToLower().Escape()};
|
||||
var operation = criteria.GroupedOr(fields, term).Compile();
|
||||
|
||||
var results = internalSearcher.Search(operation)
|
||||
.Select(x => new MemberSearchResult
|
||||
{
|
||||
Id = x["id"],
|
||||
Name = x["nodeName"],
|
||||
Email = x["email"],
|
||||
LoginName = x["loginName"]
|
||||
});
|
||||
rp_members.DataSource = results;
|
||||
rp_members.DataBind();
|
||||
}
|
||||
@@ -67,7 +50,39 @@ namespace umbraco.presentation.umbraco.members
|
||||
resultsPane.Visible = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
IEnumerable<MemberSearchResult> results;
|
||||
if (searchQuery.Text.Contains("@"))
|
||||
{
|
||||
results = from MembershipUser x in Membership.FindUsersByEmail(searchQuery.Text)
|
||||
select
|
||||
new MemberSearchResult()
|
||||
{
|
||||
Id = x.UserName,
|
||||
Email = x.Email,
|
||||
LoginName = x.UserName,
|
||||
Name = x.UserName
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
results = from MembershipUser x in Membership.FindUsersByName(searchQuery.Text + "%")
|
||||
select
|
||||
new MemberSearchResult()
|
||||
{
|
||||
Id = x.UserName,
|
||||
Email = x.Email,
|
||||
LoginName = x.UserName,
|
||||
Name = x.UserName
|
||||
};
|
||||
}
|
||||
|
||||
rp_members.DataSource = results;
|
||||
rp_members.DataBind();
|
||||
}
|
||||
}
|
||||
|
||||
public class MemberSearchResult
|
||||
{
|
||||
public string Id { get; set; }
|
||||
|
||||
@@ -551,14 +551,19 @@ namespace umbraco.cms.businesslogic.member
|
||||
SqlHelper.CreateParameter("@id", Id));
|
||||
}
|
||||
|
||||
return m_Email.ToLower();
|
||||
return string.IsNullOrWhiteSpace(m_Email) ? m_Email : m_Email.ToLower();
|
||||
}
|
||||
set
|
||||
{
|
||||
var oldEmail = Email;
|
||||
var newEmail = value.ToLower();
|
||||
var newEmail = string.IsNullOrWhiteSpace(value) ? value : value.ToLower();
|
||||
var requireUniqueEmail = Membership.Providers[UmbracoMemberProviderName].RequiresUniqueEmail;
|
||||
var howManyMembersWithEmail = Member.GetMembersFromEmail(newEmail).Length;
|
||||
|
||||
var howManyMembersWithEmail = 0;
|
||||
var membersWithEmail = GetMembersFromEmail(newEmail);
|
||||
if (membersWithEmail != null)
|
||||
howManyMembersWithEmail = membersWithEmail.Length;
|
||||
|
||||
if (((oldEmail == newEmail && howManyMembersWithEmail > 1) ||
|
||||
(oldEmail != newEmail && howManyMembersWithEmail > 0))
|
||||
&& requireUniqueEmail)
|
||||
|
||||
@@ -31,7 +31,7 @@ namespace umbraco.editorControls.tinymce
|
||||
// gather all attributes
|
||||
// TODO: This should be replaced with a general helper method - but for now we'll wanna leave umbraco.dll alone for this patch
|
||||
var ht = new Hashtable();
|
||||
var matches = Regex.Matches(tag.Value.Replace(">", " >"), "(?<attributeName>\\S*)=\"(?<attributeValue>[^\"]*)\"|(?<attributeName>\\S*)=(?<attributeValue>[^\"|\\s]*)\\s", RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace);
|
||||
var matches = Regex.Matches(tag.Value.Replace(">", " >"), "(?<attributeName>\\S*?)=\"(?<attributeValue>[^\"]*)\"|(?<attributeName>\\S*?)=(?<attributeValue>[^\"|\\s]*)\\s", RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace);
|
||||
foreach (Match attributeSet in matches)
|
||||
{
|
||||
ht.Add(attributeSet.Groups["attributeName"].Value.ToLower(),
|
||||
|
||||
Reference in New Issue
Block a user