diff --git a/src/MusicStore.Spa/Apis/AlbumsApiController.cs b/src/MusicStore.Spa/Apis/AlbumsApiController.cs index 124238c739..53a207ee21 100644 --- a/src/MusicStore.Spa/Apis/AlbumsApiController.cs +++ b/src/MusicStore.Spa/Apis/AlbumsApiController.cs @@ -70,7 +70,7 @@ namespace MusicStore.Apis } [HttpPost] - [Authorize("ManageStore", "Allowed")] + [Authorize("app-ManageStore", "Allowed")] public async Task CreateAlbum() { var album = new Album(); @@ -96,7 +96,7 @@ namespace MusicStore.Apis } [HttpPut("{albumId:int}/update")] - [Authorize("ManageStore", "Allowed")] + [Authorize("app-ManageStore", "Allowed")] public async Task UpdateAlbum(int albumId) { var album = _storeContext.Albums.SingleOrDefault(a => a.AlbumId == albumId); @@ -129,7 +129,7 @@ namespace MusicStore.Apis } [HttpDelete("{albumId:int}")] - [Authorize("ManageStore", "Allowed")] + [Authorize("app-ManageStore", "Allowed")] public async Task DeleteAlbum(int albumId) { //var album = await _storeContext.Albums.SingleOrDefaultAsync(a => a.AlbumId == albumId); diff --git a/src/MusicStore.Spa/Controllers/PageController.cs b/src/MusicStore.Spa/Controllers/PageController.cs index e25377f6eb..8e795e43a4 100644 --- a/src/MusicStore.Spa/Controllers/PageController.cs +++ b/src/MusicStore.Spa/Controllers/PageController.cs @@ -13,7 +13,7 @@ namespace MusicStore.Spa.Controllers } [HttpGet("admin")] - [Authorize("ManageStore", "Allowed")] + [Authorize("app-ManageStore", "Allowed")] public IActionResult Admin() { return View("/Pages/Admin.cshtml"); diff --git a/src/MusicStore.Spa/Models/SampleData.cs b/src/MusicStore.Spa/Models/SampleData.cs index bb6e4cd947..9c2885d7ea 100644 --- a/src/MusicStore.Spa/Models/SampleData.cs +++ b/src/MusicStore.Spa/Models/SampleData.cs @@ -56,7 +56,7 @@ namespace MusicStore.Models user = new ApplicationUser { UserName = settings.DefaultAdminUsername }; await userManager.CreateAsync(user, settings.DefaultAdminPassword); await userManager.AddToRoleAsync(user, adminRole); - await userManager.AddClaimAsync(user, new Claim("ManageStore", "Allowed")); + await userManager.AddClaimAsync(user, new Claim("app-ManageStore", "Allowed")); } } diff --git a/src/MusicStore.Spa/Pages/Admin.cshtml b/src/MusicStore.Spa/Pages/Admin.cshtml index 233aba1a13..811672efc3 100644 --- a/src/MusicStore.Spa/Pages/Admin.cshtml +++ b/src/MusicStore.Spa/Pages/Admin.cshtml @@ -17,7 +17,6 @@ - @* TODO: This is currently all the compiled TypeScript, non-minified. Need to explore options for alternate loading schemes, e.g. AMD loader of individual modules, min vs. non-min, etc. *@ diff --git a/src/MusicStore.Spa/Views/Account/Login.cshtml b/src/MusicStore.Spa/Views/Account/Login.cshtml index f5a68c0df2..c66d058249 100644 --- a/src/MusicStore.Spa/Views/Account/Login.cshtml +++ b/src/MusicStore.Spa/Views/Account/Login.cshtml @@ -96,8 +96,8 @@ @*@Scripts.Render("~/bundles/jqueryval")*@ @* *@ - - + + @* TODO: This is currently all the compiled TypeScript, non-minified. Need to explore options for alternate loading schemes, e.g. AMD loader of individual modules, min vs. non-min, etc. *@ diff --git a/src/MusicStore.Spa/Views/Shared/_LoginPartial.cshtml b/src/MusicStore.Spa/Views/Shared/_LoginPartial.cshtml index 8c70f2d26b..3dc4612ff4 100644 --- a/src/MusicStore.Spa/Views/Shared/_LoginPartial.cshtml +++ b/src/MusicStore.Spa/Views/Shared/_LoginPartial.cshtml @@ -1,4 +1,5 @@ @using System.Security.Principal +@using System.Security.Claims @using Microsoft.AspNet.Identity @{ @@ -18,15 +19,18 @@
  • Log off
  • - @*@Html.Json(new { + @Html.Json(new { isAuthenticated = true, userName = User.Identity.GetUserName(), userId = User.Identity.GetUserId(), - roles = ((System.Security.Claims.ClaimsPrincipal)User).Claims - .Where(c => c.Type == System.Security.Claims.ClaimTypes.Role) - .Select(role => role.Value) + roles = ((ClaimsPrincipal)User).Claims + .Where(c => c.Type == ClaimTypes.Role) + .Select(role => role.Value), + claims = ((ClaimsPrincipal)User).Claims + .Where(c => c.Type.StartsWith("app-", StringComparison.OrdinalIgnoreCase)) + .Select(role => new { role.Type, role.Value }) }, - new { id = "userDetails" })*@ + new { id = "userDetails" }) } } else @@ -36,11 +40,11 @@ else
  • @Html.ActionLink("Log in", "Login", "Account", routeValues: null, htmlAttributes: new { id = "loginLink", app_login_link = "" })
  • - @*@Html.Json(new { + @Html.Json(new { isAuthenticated = false, userName = (string)null, userId = (string)null, roles = Enumerable.Empty() }, - new { id = "userDetails" })*@ + new { id = "userDetails" }) } diff --git a/src/MusicStore.Spa/ng-apps/MusicStore.Admin/Catalog/AlbumEdit.cshtml b/src/MusicStore.Spa/ng-apps/MusicStore.Admin/Catalog/AlbumEdit.cshtml index 9c55535363..0494941d88 100644 --- a/src/MusicStore.Spa/ng-apps/MusicStore.Admin/Catalog/AlbumEdit.cshtml +++ b/src/MusicStore.Spa/ng-apps/MusicStore.Admin/Catalog/AlbumEdit.cshtml @@ -4,7 +4,7 @@

    Album {{ viewModel.mode | titlecase }}


    - + {{ viewModel.alert.message }}
    • {{ modelError.ErrorMessage }}
    • diff --git a/src/MusicStore.Spa/ng-apps/MusicStore.Admin/Catalog/AlbumList.cshtml b/src/MusicStore.Spa/ng-apps/MusicStore.Admin/Catalog/AlbumList.cshtml index 5b992b790e..ab651de430 100644 --- a/src/MusicStore.Spa/ng-apps/MusicStore.Admin/Catalog/AlbumList.cshtml +++ b/src/MusicStore.Spa/ng-apps/MusicStore.Admin/Catalog/AlbumList.cshtml @@ -6,7 +6,7 @@ Create new

      - + {{ viewModel.alert.message }}
      • {{ modelError.ErrorMessage }}
      • diff --git a/src/MusicStore.Spa/ng-apps/MusicStore.Admin/MusicStore.Admin.app.ts b/src/MusicStore.Spa/ng-apps/MusicStore.Admin/MusicStore.Admin.app.ts index ab415980c8..c8023be540 100644 --- a/src/MusicStore.Spa/ng-apps/MusicStore.Admin/MusicStore.Admin.app.ts +++ b/src/MusicStore.Spa/ng-apps/MusicStore.Admin/MusicStore.Admin.app.ts @@ -37,7 +37,7 @@ module MusicStore.Admin { } // Use this method to register work which should be performed when the injector is done loading all modules. - //function BUG:run() { - - //} + function run($log: ng.ILogService, userDetails: UserDetails.IUserDetailsService) { + $log.log(userDetails.getUserDetails()); + } } \ No newline at end of file diff --git a/src/MusicStore.Spa/wwwroot/js/MusicStore.Admin.js b/src/MusicStore.Spa/wwwroot/js/MusicStore.Admin.js index 10ff7acb78..86d5957c34 100644 --- a/src/MusicStore.Spa/wwwroot/js/MusicStore.Admin.js +++ b/src/MusicStore.Spa/wwwroot/js/MusicStore.Admin.js @@ -1028,6 +1028,10 @@ var MusicStore; "$routeProvider", "$logProvider", configuration + ]).run([ + "$log", + "MusicStore.UserDetails.IUserDetailsService", + run ]); var dependencies = [ @@ -1053,6 +1057,10 @@ var MusicStore; $routeProvider.when("/albums/:albumId/details", { templateUrl: "ng-apps/MusicStore.Admin/Catalog/AlbumDetails.cshtml" }).when("/albums/:albumId/:mode", { templateUrl: "ng-apps/MusicStore.Admin/Catalog/AlbumEdit.cshtml" }).when("/albums/:mode", { templateUrl: "ng-apps/MusicStore.Admin/Catalog/AlbumEdit.cshtml" }).when("/albums", { templateUrl: "ng-apps/MusicStore.Admin/Catalog/AlbumList.cshtml" }).otherwise({ redirectTo: "/albums" }); } + + function run($log, userDetails) { + $log.log(userDetails.getUserDetails()); + } })(MusicStore.Admin || (MusicStore.Admin = {})); var Admin = MusicStore.Admin; })(MusicStore || (MusicStore = {}));