Reusable blocks / global blocks
b

Bjarne Fyrstenborg

over 1 year ago
Currently Umbraco doesn't have the concept of resusable blocks / global blocks (yet). For now I just added a archive of content nodes, where each has a Block List to select 3 different blocks (text, image and accordion for now) to configure as global content. In the Block Grid there a reusable block to select of of these content nodes. However since the model if different, I can't directly pass the model into existing Block Grid block view. This works, but is there a simpler/better way to do this?
@inherits Umbraco.Cms.Web.Common.Views.UmbracoViewPage<Umbraco.Cms.Core.Models.Blocks.BlockGridItem<BlockReusableContent>>
@using ContentModels = Umbraco.Cms.Web.Common.PublishedModels;
@using Umbraco.Cms.Core
@using Umbraco.Cms.Core.Models.Blocks
@{
    var content = Model.Content;

    var data = content.Block as ReusableContent;

    if (data == null || !data.Block.HasAny())
        return;
}

@foreach (var block in data.Block)
{
    if (block?.ContentUdi == null) { continue; }

    var item = block.Content;

    var contentUdi = Udi.Create(Constants.UdiEntityType.Element, item.ContentType.Key);

    if (item is BlockImage image)
    {
        @await Html.PartialAsync("blockgrid/components/" + item.ContentType.Alias, new BlockGridItem<BlockImage>(contentUdi, image, null, null))
    }
    else if (item is BlockText text)
    {
        @await Html.PartialAsync("blockgrid/components/" + item.ContentType.Alias, new BlockGridItem<BlockText>(contentUdi, text, null, null))
    }
    else if (item is BlockAccordion accordion)
    {
        @await Html.PartialAsync("blockgrid/components/" + item.ContentType.Alias, new BlockGridItem<BlockAccordion>(contentUdi, accordion, null, null))
    }
}
Umbraco 13 .Net Core Cookie Authentication
i

imadtbro

11 months ago
Hi everyone, I'm working on an Umbraco 13 project and have been trying to set up Cookie based authentication (https://learn.microsoft.com/en-us/aspnet/core/security/authentication/cookie?view=aspnetcore-8.0) We have an external data source being used for front-end user accounts, to which all I want to do is used the Cookie based authentication to control the authentication process. I found some older code in the Umbraco forums that lead me to this current set up of code: Image1 for my AddUserCookieAuthentication builder extension Image2 for how I add this extenstion in Startup.cs Image3 for adding the use Authentication to the app in Startup.cs Image4 is where my code for logging the user in. All of this works great. I can properly check if a user is logged in and authenticated using "HttpContext.User.Identity.IsAuthenticated" and obtain the data from the Claims. I just ran into an issue where if I am logged in on the frontend, the back office is broken for me. (I can still open an incognito window and login there and everything works fine) In the console I see this error:
Possibly unhandled rejection: The user object is invalid, the remainingAuthSeconds is required.
I'm pretty sure it has to do with how I'm using the cookie authentication. Is there any way to fix this? Or is there anyway to better setup the cookie authentication than how I am doing it currently? If anymore information is needed, please let me know and I can provide it! Thank you! https://cdn.discordapp.com/attachments/1305939609548492870/1305939609758470214/image.png?ex=6734da8a&is=6733890a&hm=43e0a7c12f81eed0e65cab3da0dae71e03d4f720cf3d7ce571719b10f29483df& https://cdn.discordapp.com/attachments/1305939609548492870/1305939610261520484/image.png?ex=6734da8a&is=6733890a&hm=6d2816d406f193c1c2c9ddd794c9db2d00e3fb234e5f47c8e2277e7012ea2c26& https://cdn.discordapp.com/attachments/1305939609548492870/1305939610530086973/image.png?ex=6734da8a&is=6733890a&hm=faea64d792ab91d041149de01e37786e136a4956126bee4d6aba6b094ba5e68f& https://cdn.discordapp.com/attachments/1305939609548492870/1305939610786074714/image.png?ex=6734da8a&is=6733890a&hm=7b63405b97a65717deb380f2c7c98522505d7057ab4b134a10be884c7fc6fc86&