fix #5374 Visitor Settings not returned due to change in Visitor cookie format

This commit is contained in:
sbwalker
2025-07-03 16:44:59 -04:00
parent b1a8c28283
commit 0d3d693799
3 changed files with 21 additions and 16 deletions

View File

@ -51,11 +51,8 @@ namespace Oqtane.Controllers
bool authorized = User.IsInRole(RoleNames.Admin);
if (!authorized)
{
var visitorCookie = Constants.VisitorCookiePrefix + _alias.SiteId.ToString();
if (int.TryParse(Request.Cookies[visitorCookie], out int visitorId))
{
authorized = (visitorId == id);
}
var visitorCookieName = Constants.VisitorCookiePrefix + _alias.SiteId.ToString();
authorized = (id == GetVisitorCookieId(Request.Cookies[visitorCookieName]));
}
var visitor = _visitors.GetVisitor(id);
@ -77,5 +74,12 @@ namespace Oqtane.Controllers
return null;
}
}
private int GetVisitorCookieId(string visitorCookie)
{
// visitor cookies contain the visitor id and an expiry date separated by a pipe symbol
visitorCookie = (visitorCookie.Contains("|")) ? visitorCookie.Split('|')[0] : visitorCookie;
return (int.TryParse(visitorCookie, out int visitorId)) ? visitorId : -1;
}
}
}