Support for user personalizable pages

This commit is contained in:
Shaun Walker
2019-11-10 14:56:29 -05:00
parent ab564f7244
commit ffba735aac
17 changed files with 587 additions and 378 deletions

View File

@ -26,7 +26,7 @@ namespace Oqtane.Repository
public IEnumerable<Page> GetPages(int SiteId)
{
IEnumerable<Permission> permissions = Permissions.GetPermissions(SiteId, "Page").ToList();
IEnumerable<Page> pages = db.Page.Where(item => item.SiteId == SiteId);
IEnumerable<Page> pages = db.Page.Where(item => item.SiteId == SiteId && item.UserId == null);
foreach(Page page in pages)
{
page.Permissions = Permissions.EncodePermissions(page.PageId, permissions);
@ -61,6 +61,25 @@ namespace Oqtane.Repository
return page;
}
public Page GetPage(int PageId, int UserId)
{
Page page = db.Page.Find(PageId);
if (page != null)
{
Page personalized = db.Page.Where(item => item.SiteId == page.SiteId && item.Path == page.Path && item.UserId == UserId).FirstOrDefault();
if (personalized != null)
{
page = personalized;
}
if (page != null)
{
IEnumerable<Permission> permissions = Permissions.GetPermissions("Page", page.PageId);
page.Permissions = Permissions.EncodePermissions(page.PageId, permissions);
}
}
return page;
}
public void DeletePage(int PageId)
{
Page Page = db.Page.Find(PageId);