Merge pull request #3339 from sbwalker/dev

fix UrlCombine so that it handles leading and trailing path delimiters and returns proper paths
This commit is contained in:
Shaun Walker 2023-09-27 16:07:32 -04:00 committed by GitHub
commit 03566afe66
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 5 deletions

View File

@ -67,6 +67,7 @@
</div> </div>
</div> </div>
</form> </form>
<br /><br />
@if (!_isSystem) @if (!_isSystem)
{ {
@ -79,8 +80,7 @@
@((MarkupString)"&nbsp;") @((MarkupString)"&nbsp;")
<ActionDialog Header="Delete Folder" Message="Are You Sure You Wish To Delete This Folder?" Action="Delete" Security="SecurityAccessLevel.Admin" Class="btn btn-danger" OnClick="@(async () => await DeleteFolder())" ResourceKey="DeleteFolder" /> <ActionDialog Header="Delete Folder" Message="Are You Sure You Wish To Delete This Folder?" Action="Delete" Security="SecurityAccessLevel.Admin" Class="btn btn-danger" OnClick="@(async () => await DeleteFolder())" ResourceKey="DeleteFolder" />
} }
<br /> <br /><br />
<br />
@if (PageState.QueryString.ContainsKey("id")) @if (PageState.QueryString.ContainsKey("id"))
{ {
<AuditInfo CreatedBy="@_createdBy" CreatedOn="@_createdOn" ModifiedBy="@_modifiedBy" ModifiedOn="@_modifiedOn"></AuditInfo> <AuditInfo CreatedBy="@_createdBy" CreatedOn="@_createdOn" ModifiedBy="@_modifiedBy" ModifiedOn="@_modifiedOn"></AuditInfo>

View File

@ -389,10 +389,12 @@ namespace Oqtane.Shared
} }
public static string UrlCombine(params string[] segments) public static string UrlCombine(params string[] segments)
{ {
segments = segments.Where(item => !string.IsNullOrEmpty(item) && item != "/" && item != "\\").ToArray(); segments = segments.Where(item => !string.IsNullOrEmpty(item) && item != "/" && item != "\\").ToArray();
for (int i = 1; i < segments.Length; i++) for (int i = 0; i < segments.Length; i++)
{ {
segments[i] = (segments[i].StartsWith("/") || segments[i].StartsWith("\\")) ? segments[i].Substring(1) : segments[i];
segments[i] = (segments[i].EndsWith("/") || segments[i].EndsWith("\\")) ? segments[i].Substring(0, segments[i].Length - 1) : segments[i];
segments[i] = segments[i].Replace("\\", "/"); segments[i] = segments[i].Replace("\\", "/");
} }
return string.Join("/", segments); return string.Join("/", segments);