How to Register Permission to the database and grant to a role in asp.net boilerplate

Viewed 550

Hi May you please help me with the steps of Adding Permissions, assign them to a role in asp.net boiler plate. The Permission i want to add is Plugs

 public static class PermissionNames 
 {
    public const string Pages_Tenants = "Pages.Tenants";
    public const string Pages_Users = "Pages.Users";
    public const string Pages_Roles = "Pages.Roles";
    public const string Pages_Plugs = "Pages.Plugs";
 }

public class SprintWebAPIAuthorizationProvider : AuthorizationProvider
{
    public override void SetPermissions(IPermissionDefinitionContext context)
    {
        context.CreatePermission(PermissionNames.Pages_Users, L("Users"));
        context.CreatePermission(PermissionNames.Pages_Roles, L("Roles"));
        context.CreatePermission(PermissionNames.Pages_Plugs, L(name:"Plugs"), multiTenancySides: MultiTenancySides.Tenant);
        context.CreatePermission(PermissionNames.Pages_Tenants, L("Tenants"), multiTenancySides: MultiTenancySides.Host);
    }

    private static ILocalizableString L(string name)
    {
        return new LocalizableString(name, SprintWebAPIConsts.LocalizationSourceName);
    }
}
1 Answers

To add a permission yo have to create the permission const as you did it and then add it to Authorization/YourProjectAuthorizationProvider.

        var pages = context.GetPermissionOrNull(AppPermissions.Pages) ?? context.CreatePermission(AppPermissions.Pages, L("Pages"));

        var plugs = pages.CreateChildPermission(AppPermissions.Pages_Plugs, L("Plugs"));

        var plugItem = generales.CreateChildPermission(AppPermissions.Pages_Plug_PlugItem, L("PlugItem"));
        plugItem.CreateChildPermission(AppPermissions.Pages_Plug_PlugItem_Create, L("Create"));

After that you can create a role and add those permission throught the user interface.

Related