Merge with 6.1.0

This commit is contained in:
Shannon Deminick
2013-05-28 14:20:43 -10:00
19 changed files with 150 additions and 149 deletions

View File

@@ -102,13 +102,13 @@
<Project>{07fbc26b-2927-4a22-8d96-d644c667fecc}</Project>
<Name>UmbracoExamine</Name>
</ProjectReference>
<Reference Include="ClientDependency.Core, Version=1.6.0.0, Culture=neutral, processorArchitecture=MSIL">
<Reference Include="ClientDependency.Core, Version=1.7.0.1, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\ClientDependency.1.6.0.0\lib\ClientDependency.Core.dll</HintPath>
<HintPath>..\packages\ClientDependency.1.7.0.1\lib\ClientDependency.Core.dll</HintPath>
</Reference>
<Reference Include="ClientDependency.Core.Mvc, Version=1.6.0.0, Culture=neutral, processorArchitecture=MSIL">
<Reference Include="ClientDependency.Core.Mvc, Version=1.7.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\ClientDependency-Mvc.1.6.0.0\lib\ClientDependency.Core.Mvc.dll</HintPath>
<HintPath>..\packages\ClientDependency-Mvc.1.7.0.0\lib\ClientDependency.Core.Mvc.dll</HintPath>
</Reference>
<Reference Include="Examine, Version=0.1.51.2941, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>

View File

@@ -10,7 +10,7 @@ NOTES:
* Compression/Combination/Minification is not enabled unless debug="false" is specified on the 'compiliation' element in the web.config
* A new version will invalidate both client and server cache and create new persisted files
-->
<clientDependency version="1" fileDependencyExtensions=".js,.css">
<clientDependency version="1" fileDependencyExtensions=".js,.css" loggerType="Umbraco.Web.UI.CdfLogger, Umbraco.Web">
<fileRegistration defaultProvider="LoaderControlProvider">
<providers>

View File

@@ -10,7 +10,7 @@ NOTES:
* Compression/Combination/Minification is not enabled unless debug="false" is specified on the 'compiliation' element in the web.config
* A new version will invalidate both client and server cache and create new persisted files
-->
<clientDependency version="9" fileDependencyExtensions=".js,.css">
<clientDependency version="11" fileDependencyExtensions=".js,.css" loggerType="Umbraco.Web.UI.CdfLogger, umbraco">
<fileRegistration defaultProvider="LoaderControlProvider">
<providers>
@@ -30,8 +30,8 @@ NOTES:
<add name="LazyLoadRenderer" type="ClientDependency.Core.FileRegistration.Providers.LazyLoadRenderer, ClientDependency.Core" />
</renderers>
</mvc>
<!--
<!--
The composite file section configures the compression/combination/minification of files.
You can enable/disable minification of either JS/CSS files and you can enable/disable the
persistence of composite files. By default, minification and persistence is enabled. Persisting files

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="ClientDependency" version="1.6.0.0" targetFramework="net40" />
<package id="ClientDependency-Mvc" version="1.6.0.0" targetFramework="net40" />
<package id="ClientDependency" version="1.7.0.1" targetFramework="net40" />
<package id="ClientDependency-Mvc" version="1.7.0.0" targetFramework="net40" />
<package id="Examine" version="0.1.51.2941" targetFramework="net40" />
<package id="log4net-mediumtrust" version="2.0.0" targetFramework="net40" />
<package id="Lucene.Net" version="2.9.4.1" targetFramework="net40" />

View File

@@ -173,7 +173,7 @@ Umbraco.Sys.registerNamespace("Umbraco.Controls");
var self = this;
// Inject the upload overlay
var instructions = 'draggable' in document.createElement('span') ? "<h1>Drag files here to upload</h1> \<p>Or, click the button below to chose the items to upload</p>" : "<h1>Click the browse button below to chose the items to upload</h1>";
var instructions = 'draggable' in document.createElement('span') ? "<h1>Drag files here to upload</h1> \<p>Or, click the button below to choose the items to upload</p>" : "<h1>Click the browse button below to choose the items to upload</h1>";
var overlay = $("<div class='upload-overlay'>" +
"<div class='upload-panel'>" +

View File

@@ -114,7 +114,7 @@ namespace Umbraco.Web.Mvc
else
{
//exit the loop
currentRouteData = null;
currentContext = null;
}
}
return new Attempt<RouteDefinition>(

View File

@@ -0,0 +1,40 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ClientDependency.Core.Logging;
using Umbraco.Core.Logging;
namespace Umbraco.Web.UI
{
/// <summary>
/// A logger for ClientDependency
/// </summary>
public class CdfLogger : ILogger
{
public void Debug(string msg)
{
LogHelper.Debug<CdfLogger>(msg);
}
public void Info(string msg)
{
LogHelper.Info<CdfLogger>(msg);
}
public void Warn(string msg)
{
LogHelper.Warn<CdfLogger>(msg);
}
public void Error(string msg, Exception ex)
{
LogHelper.Error<CdfLogger>(msg, ex);
}
public void Fatal(string msg, Exception ex)
{
LogHelper.Error<CdfLogger>(msg, ex);
}
}
}

View File

@@ -95,9 +95,9 @@
<Project>{07fbc26b-2927-4a22-8d96-d644c667fecc}</Project>
<Name>UmbracoExamine</Name>
</ProjectReference>
<Reference Include="ClientDependency.Core, Version=1.6.0.0, Culture=neutral, processorArchitecture=MSIL">
<Reference Include="ClientDependency.Core, Version=1.7.0.1, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\ClientDependency.1.6.0.0\lib\ClientDependency.Core.dll</HintPath>
<HintPath>..\packages\ClientDependency.1.7.0.1\lib\ClientDependency.Core.dll</HintPath>
</Reference>
<Reference Include="CookComputing.XmlRpcV2, Version=2.5.0.0, Culture=neutral, PublicKeyToken=a7d6e17aa302004d, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
@@ -386,6 +386,7 @@
<Compile Include="Security\ValidateRequestAttempt.cs" />
<Compile Include="Security\WebSecurity.cs" />
<Compile Include="UI\JavaScript\ServerVariablesParser.cs" />
<Compile Include="UI\CdfLogger.cs" />
<Compile Include="umbraco.presentation\LegacyClasses.cs" />
<Compile Include="umbraco.presentation\umbraco\controls\ContentTypeControlNew.ascx.cs">
<SubType>ASPXCodeBehind</SubType>

View File

@@ -13,7 +13,7 @@ using Umbraco.Web.BaseRest;
namespace Umbraco.Web.WebServices
{
//TODO: Can we convert this to MVC please instead of /base?
//TODO: Can we convert this to MVC please instead of /base?
[RestExtension("FolderBrowserService")]
public class FolderBrowserService
@@ -21,22 +21,13 @@ namespace Umbraco.Web.WebServices
[RestExtensionMethod(ReturnXml = false)]
public static string GetChildren(int parentId)
{
var service = ApplicationContext.Current.Services.EntityService;
var parentMedia = service.Get(parentId, UmbracoObjectTypes.Media);
var mediaPath = parentMedia == null ? parentId.ToString(CultureInfo.InvariantCulture) : parentMedia.Path;
var currentUser = User.GetCurrent();
var data = new List<object>();
// Check user is logged in
if (currentUser == null)
throw new UnauthorizedAccessException("You must be logged in to use this service");
// Check user is allowed to access selected media item
if (!("," + mediaPath + ",").Contains("," + currentUser.StartMediaId + ","))
throw new UnauthorizedAccessException("You do not have access to this Media node");
var currentUser = GetCurrentUser();
AuthorizeAccess(parentId, currentUser);
// Get children and filter
var data = new List<object>();
var service = ApplicationContext.Current.Services.EntityService;
var entities = service.GetChildren(parentId, UmbracoObjectTypes.Media);
//TODO: Only fetch files, not containers
foreach (UmbracoEntity entity in entities)
@@ -51,9 +42,9 @@ namespace Umbraco.Web.WebServices
MediaTypeAlias = entity.ContentTypeAlias,
EditUrl = string.Format("editMedia.aspx?id={0}", entity.Id),
FileUrl = entity.UmbracoFile,
ThumbnailUrl = !string.IsNullOrEmpty(thumbUrl)
? thumbUrl
: IOHelper.ResolveUrl(SystemDirectories.Umbraco + "/images/thumbnails/" + entity.ContentTypeThumbnail)
ThumbnailUrl = string.IsNullOrEmpty(thumbUrl)
? IOHelper.ResolveUrl(string.Format("{0}/images/thumbnails/{1}", SystemDirectories.Umbraco, entity.ContentTypeThumbnail))
: thumbUrl
};
data.Add(item);
@@ -65,22 +56,48 @@ namespace Umbraco.Web.WebServices
[RestExtensionMethod(ReturnXml = false)]
public static string Delete(string nodeIds)
{
var currentUser = GetCurrentUser();
var nodeIdParts = nodeIds.Split(',');
foreach (var nodeIdPart in nodeIdParts.Where(x => !string.IsNullOrEmpty(x)))
foreach (var nodeIdPart in nodeIdParts.Where(x => string.IsNullOrEmpty(x) == false))
{
var nodeId = 0;
if (!Int32.TryParse(nodeIdPart, out nodeId))
int nodeId;
if (Int32.TryParse(nodeIdPart, out nodeId) == false)
continue;
var node = new global::umbraco.cms.businesslogic.media.Media(nodeId);
AuthorizeAccess(node, currentUser);
node.delete(("," + node.Path + ",").Contains(",-21,"));
}
return new JavaScriptSerializer().Serialize(new
{
success = true
});
return new JavaScriptSerializer().Serialize(new { success = true });
}
private static User GetCurrentUser()
{
var currentUser = User.GetCurrent();
if (currentUser == null)
throw new UnauthorizedAccessException("You must be logged in to use this service");
return currentUser;
}
private static void AuthorizeAccess(global::umbraco.cms.businesslogic.media.Media mediaItem, User currentUser)
{
if (("," + mediaItem.Path + ",").Contains("," + currentUser.StartMediaId + ",") == false)
throw new UnauthorizedAccessException("You do not have access to this Media node");
}
private static void AuthorizeAccess(int parentId, User currentUser)
{
var service = ApplicationContext.Current.Services.EntityService;
var parentMedia = service.Get(parentId, UmbracoObjectTypes.Media);
var mediaPath = parentMedia == null ? parentId.ToString(CultureInfo.InvariantCulture) : parentMedia.Path;
if (("," + mediaPath + ",").Contains("," + currentUser.StartMediaId + ",") == false)
throw new UnauthorizedAccessException("You do not have access to this Media node");
}
}
}

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="ClientDependency" version="1.6.0.0" targetFramework="net40" />
<package id="ClientDependency" version="1.7.0.1" targetFramework="net40" />
<package id="CodeSharp.Package.AspNetWebPage" version="1.0" targetFramework="net40" />
<package id="Examine" version="0.1.51.2941" targetFramework="net40" />
<package id="HtmlAgilityPack" version="1.4.5" targetFramework="net40" />

View File

@@ -1,9 +1,9 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using Umbraco.Web.WebServices;
using umbraco.BasePages;
using umbraco.BusinessLogic;
using umbraco.cms.businesslogic.web;
using umbraco.cms.businesslogic;
@@ -25,77 +25,44 @@ namespace umbraco.presentation.umbraco.webservices
public override void ProcessRequest(HttpContext context)
{
//user must be allowed to see content or media
if (!AuthorizeRequest(DefaultApps.content.ToString()) && !AuthorizeRequest(DefaultApps.media.ToString()))
return;
if (BasePage.ValidateUserContextID(BasePage.umbracoUserContextID) == false)
throw new Exception("Client authorization failed. User is not logged in");
//user must be allowed to see content or media
if (AuthorizeRequest(DefaultApps.content.ToString()) == false && AuthorizeRequest(DefaultApps.media.ToString()) == false)
return;
context.Response.ContentType = "text/plain";
_prefix = context.Request.QueryString["q"];
int parentNodeId = Convert.ToInt32(context.Request.QueryString["id"]);
bool showGrandChildren = Convert.ToBoolean(context.Request.QueryString["showchildren"]);
var parentNodeId = Convert.ToInt32(context.Request.QueryString["id"]);
var showGrandChildren = Convert.ToBoolean(context.Request.QueryString["showchildren"]);
string documentAliasFilter = context.Request.QueryString["filter"];
string[] documentAliasFilters = documentAliasFilter.Split(",".ToCharArray());
var documentAliasFilter = context.Request.QueryString["filter"];
var documentAliasFilters = documentAliasFilter.Split(",".ToCharArray());
var parent = new CMSNode(parentNodeId);
CMSNode parent = new CMSNode(parentNodeId);
if (!showGrandChildren)
_nodeCount = 0;
//store children array here because iterating over an Array property object is very inneficient.
var children = parent.Children;
foreach (CMSNode child in children)
{
_nodeCount = 0;
//store children array here because iterating over an Array property object is very inneficient.
var children = parent.Children;
foreach (CMSNode child in children)
{
NodeChildrenCount(child, false, documentAliasFilters);
}
_output = new string[_nodeCount];
_counter = 0;
int level = 1;
//why is there a 2nd iteration of the same thing here?
foreach (CMSNode child in children)
{
AddNode(child, level, showGrandChildren, documentAliasFilters);
}
}
else
{
_nodeCount = 0;
//store children array here because iterating over an Array property object is very inneficient.
var children = parent.Children;
foreach (CMSNode child in children)
{
NodeChildrenCount(child, true, documentAliasFilters);
}
_output = new string[_nodeCount];
_counter = 0;
int level = 1;
foreach (CMSNode child in children)
{
AddNode(child, level, showGrandChildren, documentAliasFilters);
}
NodeChildrenCount(child, showGrandChildren, documentAliasFilters);
}
_output = new string[_nodeCount];
_counter = 0;
int level = 1;
foreach (string item in _output)
foreach (CMSNode child in children)
{
AddNode(child, level, showGrandChildren, documentAliasFilters);
}
foreach (var item in _output)
{
context.Response.Write(item + Environment.NewLine);
}
@@ -103,38 +70,21 @@ namespace umbraco.presentation.umbraco.webservices
private bool ValidNode(string nodeText)
{
if (nodeText.Length >= _prefix.Length)
{
if (nodeText.Substring(0, _prefix.Length).ToLower() == _prefix.ToLower())
{
return true;
}
}
return false;
return nodeText.Length >= _prefix.Length && nodeText.Substring(0, _prefix.Length).ToLower() == _prefix.ToLower();
}
private void NodeChildrenCount(CMSNode node, bool countChildren, string[] documentAliasFilters)
{
if (documentAliasFilters.Length > 0)
{
foreach (string filter in documentAliasFilters)
foreach (var filter in documentAliasFilters)
{
string trimmedFilter = filter.TrimStart(" ".ToCharArray());
var trimmedFilter = filter.TrimStart(" ".ToCharArray());
trimmedFilter = trimmedFilter.TrimEnd(" ".ToCharArray());
if (new Document(node.Id).ContentType.Alias == trimmedFilter || trimmedFilter == string.Empty)
if ((new Document(node.Id).ContentType.Alias == trimmedFilter || trimmedFilter == string.Empty) && ValidNode(node.Text))
{
if (ValidNode(node.Text))
{
_nodeCount += 1;
}
_nodeCount += 1;
}
}
}
@@ -160,28 +110,24 @@ namespace umbraco.presentation.umbraco.webservices
private void AddNode(CMSNode node, int level, bool showGrandChildren, string[] documentAliasFilters)
{
var preText = string.Empty;
string preText = string.Empty;
for (int i = 1; i < level; i++)
for (var i = 1; i < level; i++)
{
preText += "- ";
}
if (documentAliasFilters.Length > 0)
{
foreach (string filter in documentAliasFilters)
foreach (var filter in documentAliasFilters)
{
string trimmedFilter = filter.TrimStart(" ".ToCharArray());
var trimmedFilter = filter.TrimStart(" ".ToCharArray());
trimmedFilter = trimmedFilter.TrimEnd(" ".ToCharArray());
if (new Document(node.Id).ContentType.Alias == trimmedFilter || trimmedFilter == string.Empty)
if ((new Document(node.Id).ContentType.Alias == trimmedFilter || trimmedFilter == string.Empty) && ValidNode(node.Text))
{
if (ValidNode(node.Text))
{
_output[_counter] = preText + node.Text + " [" + node.Id + "]";
_counter++;
}
_output[_counter] = preText + node.Text + " [" + node.Id + "]";
_counter++;
}
}
@@ -211,10 +157,7 @@ namespace umbraco.presentation.umbraco.webservices
public override bool IsReusable
{
get
{
return false;
}
get { return false; }
}
}
}

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="ClientDependency" version="1.6.0.0" targetFramework="net40" />
<package id="ClientDependency" version="1.7.0.1" targetFramework="net40" />
<package id="HtmlAgilityPack" version="1.4.5" targetFramework="net40" />
<package id="SharpZipLib" version="0.86.0" targetFramework="net40" />
<package id="Tidy.Net" version="1.0.0" targetFramework="net40" />

View File

@@ -106,9 +106,9 @@
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="ClientDependency.Core, Version=1.6.0.0, Culture=neutral, processorArchitecture=MSIL">
<Reference Include="ClientDependency.Core, Version=1.7.0.1, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\ClientDependency.1.6.0.0\lib\ClientDependency.Core.dll</HintPath>
<HintPath>..\packages\ClientDependency.1.7.0.1\lib\ClientDependency.Core.dll</HintPath>
</Reference>
<Reference Include="HtmlAgilityPack, Version=1.4.5.0, Culture=neutral, PublicKeyToken=bd319b19eaf3b43a, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="ClientDependency" version="1.6.0.0" targetFramework="net40" />
<package id="ClientDependency" version="1.7.0.1" targetFramework="net40" />
</packages>

View File

@@ -68,9 +68,9 @@
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="ClientDependency.Core, Version=1.6.0.0, Culture=neutral, processorArchitecture=MSIL">
<Reference Include="ClientDependency.Core, Version=1.7.0.1, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\ClientDependency.1.6.0.0\lib\ClientDependency.Core.dll</HintPath>
<HintPath>..\packages\ClientDependency.1.7.0.1\lib\ClientDependency.Core.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.configuration" />

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="ClientDependency" version="1.6.0.0" targetFramework="net40" />
<package id="ClientDependency" version="1.7.0.1" targetFramework="net40" />
</packages>

View File

@@ -114,9 +114,9 @@
<Project>{651E1350-91B6-44B7-BD60-7207006D7003}</Project>
<Name>Umbraco.Web</Name>
</ProjectReference>
<Reference Include="ClientDependency.Core, Version=1.6.0.0, Culture=neutral, processorArchitecture=MSIL">
<Reference Include="ClientDependency.Core, Version=1.7.0.1, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\ClientDependency.1.6.0.0\lib\ClientDependency.Core.dll</HintPath>
<HintPath>..\packages\ClientDependency.1.7.0.1\lib\ClientDependency.Core.dll</HintPath>
</Reference>
<Reference Include="System">
<Name>System</Name>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="ClientDependency" version="1.6.0.0" targetFramework="net40" />
<package id="ClientDependency" version="1.7.0.1" targetFramework="net40" />
<package id="Microsoft.ApplicationBlocks.Data" version="1.0.1559.20655" targetFramework="net40" />
</packages>

View File

@@ -106,9 +106,9 @@
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="ClientDependency.Core, Version=1.6.0.0, Culture=neutral, processorArchitecture=MSIL">
<Reference Include="ClientDependency.Core, Version=1.7.0.1, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\ClientDependency.1.6.0.0\lib\ClientDependency.Core.dll</HintPath>
<HintPath>..\packages\ClientDependency.1.7.0.1\lib\ClientDependency.Core.dll</HintPath>
</Reference>
<Reference Include="Microsoft.ApplicationBlocks.Data, Version=1.0.1559.20655, Culture=neutral">
<SpecificVersion>False</SpecificVersion>