diff --git a/.gitguardian.yaml b/.gitguardian.yaml new file mode 100644 index 000000000..0685713d8 --- /dev/null +++ b/.gitguardian.yaml @@ -0,0 +1,5 @@ +secret: + ignored-matches: + - match: 26841b2b92a38ec6d2dd87ccc2d4f6d3613486c21f4cf5cb4d98b4527dfc0061 + name: Generic High Entropy Secret - LearningHub.Nhs.WebUI/Program.cs +version: 2 diff --git a/LearningHub.Nhs.WebUI/Controllers/Api/UserController.cs b/LearningHub.Nhs.WebUI/Controllers/Api/UserController.cs index e2b9c09b5..7e5d42864 100644 --- a/LearningHub.Nhs.WebUI/Controllers/Api/UserController.cs +++ b/LearningHub.Nhs.WebUI/Controllers/Api/UserController.cs @@ -90,6 +90,18 @@ public async Task GetUserAccessType() return this.Ok(isGeneralUser); } + /// + /// to get user role. + /// + /// The . + [HttpGet] + [Route("CheckUserRole")] + public async Task CheckUserRole() + { + var isSystemAdmin = this.User.IsInRole("Administrator"); + return this.Ok(isSystemAdmin); + } + /// /// The GetCurrentUserPersonalDetails. /// diff --git a/LearningHub.Nhs.WebUI/Controllers/ResourceController.cs b/LearningHub.Nhs.WebUI/Controllers/ResourceController.cs index 97df3861f..b040c2cf8 100644 --- a/LearningHub.Nhs.WebUI/Controllers/ResourceController.cs +++ b/LearningHub.Nhs.WebUI/Controllers/ResourceController.cs @@ -136,7 +136,7 @@ public async Task Index(int resourceReferenceId, bool? acceptSens var userGroups = await this.userGroupService.GetRoleUserGroupDetailForUserAsync(this.CurrentUserId); hasCatalogueAccess = userGroups.Any(x => x.CatalogueNodeId == resource.Catalogue.NodeId && - (x.RoleEnum == RoleEnum.LocalAdmin || x.RoleEnum == RoleEnum.Editor || x.RoleEnum == RoleEnum.Reader)); + (x.RoleEnum == RoleEnum.LocalAdmin || x.RoleEnum == RoleEnum.Editor || x.RoleEnum == RoleEnum.Reader)) || this.User.IsInRole("Administrator"); } else if (!resource.Catalogue.RestrictedAccess) { diff --git a/LearningHub.Nhs.WebUI/Scripts/vuesrc/data/user.ts b/LearningHub.Nhs.WebUI/Scripts/vuesrc/data/user.ts index 757b948ba..472ca9bac 100644 --- a/LearningHub.Nhs.WebUI/Scripts/vuesrc/data/user.ts +++ b/LearningHub.Nhs.WebUI/Scripts/vuesrc/data/user.ts @@ -54,6 +54,18 @@ const isGeneralUser = async function (): Promise { }); }; +const IsSystemAdmin = async function (): Promise { + var IsSystemAdmin = `/api/User/CheckUserRole`; + return await AxiosWrapper.axios.get(IsSystemAdmin) + .then(response => { + return response.data; + }) + .catch(e => { + console.log('IsSystemAdmin:' + e); + throw e; + }); +}; + const getCurrentUserBasicDetails = async function (): Promise { return await AxiosWrapper.axios.get('/api/User/GetCurrentUserBasicDetails') .then(response => { @@ -160,5 +172,6 @@ export const userData = { updateSecurityQuestionAnswers, keepUserSessionAlive, getkeepUserSessionAliveInterval, - isGeneralUser + isGeneralUser, + IsSystemAdmin } diff --git a/LearningHub.Nhs.WebUI/Scripts/vuesrc/resource/ResourceContent.vue b/LearningHub.Nhs.WebUI/Scripts/vuesrc/resource/ResourceContent.vue index efc9dad7c..fd68981da 100644 --- a/LearningHub.Nhs.WebUI/Scripts/vuesrc/resource/ResourceContent.vue +++ b/LearningHub.Nhs.WebUI/Scripts/vuesrc/resource/ResourceContent.vue @@ -8,7 +8,7 @@
- +