File tree Expand file tree Collapse file tree 14 files changed +78
-13
lines changed
grade-management-new/GradeManagement.Client Expand file tree Collapse file tree 14 files changed +78
-13
lines changed Original file line number Diff line number Diff line change 1-
1+ @ using GradeManagement . Client . Policies
22<MudNavMenu >
33 <MudNavLink Href =" /" Match =" NavLinkMatch.All" >Dashboard</MudNavLink >
4- <MudNavGroup Title =" Data" Expanded =" true" >
5- <MudNavLink Href =" /courses" Match =" NavLinkMatch.Prefix" >Courses</MudNavLink >
6- <MudNavLink Href =" /semesters" Match =" NavLinkMatch.Prefix" >Semesters</MudNavLink >
7- <MudNavLink Href =" /languages" Match =" NavLinkMatch.Prefix" >Languages</MudNavLink >
8- <MudNavLink Href =" /teachers" Match =" NavLinkMatch.Prefix" >Teachers</MudNavLink >
9- </MudNavGroup >
10- <MudNavGroup Title =" Admin" Expanded =" false" >
11- <MudNavLink Href =" /subjects" Match =" NavLinkMatch.Prefix" >Subjects</MudNavLink >
12- <MudNavLink Href =" /students" Match =" NavLinkMatch.Prefix" >Students</MudNavLink >
13- </MudNavGroup >
4+ <AuthorizeView Policy =" @Policy.RequireTeacher" >
5+ <MudNavGroup Title =" Data" Expanded =" true" >
6+ <MudNavLink Href =" /courses" Match =" NavLinkMatch.Prefix" >Courses</MudNavLink >
7+ <MudNavLink Href =" /semesters" Match =" NavLinkMatch.Prefix" >Semesters</MudNavLink >
8+ <MudNavLink Href =" /languages" Match =" NavLinkMatch.Prefix" >Languages</MudNavLink >
9+ <MudNavLink Href =" /teachers" Match =" NavLinkMatch.Prefix" >Teachers</MudNavLink >
10+ </MudNavGroup >
11+ </AuthorizeView >
12+ <AuthorizeView Policy =" @Policy.RequireAdmin" >
13+ <MudNavGroup Title =" Admin" Expanded =" false" >
14+ <MudNavLink Href =" /subjects" Match =" NavLinkMatch.Prefix" >Subjects</MudNavLink >
15+ <MudNavLink Href =" /students" Match =" NavLinkMatch.Prefix" >Students</MudNavLink >
16+ </MudNavGroup >
17+ </AuthorizeView >
1418</MudNavMenu >
Original file line number Diff line number Diff line change 1010@inject SubjectClient SubjectClient
1111@inject NavigationManager NavigationManager
1212
13+ @attribute [Authorize(Policy = Policy.RequireAdmin)]
14+
1315
1416<style >
1517 .clickable-rows .mud-table-body .mud-table-row {
Original file line number Diff line number Diff line change 88@inject SemesterClient SemesterClient
99@inject CourseClient CourseClient
1010@inject NavigationManager NavigationManager
11+ @attribute [Authorize(Policy = Policy.RequireTeacher)]
1112
1213@using GradeManagement .Client .Components .NewDialogs
1314@using MudExtensions
Original file line number Diff line number Diff line change 55@inject IDialogService DialogService
66@inject CrudSnackbarService SnackbarService
77@inject LanguageClient LanguageClient
8+ @attribute [Authorize(Policy = Policy.RequireTeacher)]
89
910<PageTitle >Languages</PageTitle >
1011
Original file line number Diff line number Diff line change 55@inject IDialogService DialogService
66@inject CrudSnackbarService SnackbarService
77@inject SemesterClient SemesterClient
8+ @attribute [Authorize(Policy = Policy.RequireTeacher)]
89
910<PageTitle >Semesters</PageTitle >
1011
Original file line number Diff line number Diff line change 11@page " /courses/{Id:int}"
2- @using System .Net
32@using GradeManagement .Client .Components .NewDialogs
43@layout AuthenticatedLayout
54
87@inject CourseClient CourseClient
98@inject ExerciseClient ExerciseClient
109@inject GroupClient GroupClient
10+ @attribute [Authorize(Policy = Policy.RequireTeacher)]
1111
1212<LoadingComponent LongTask =" @_loading" @ref =" loadingRef" >
1313 <PageTitle >Course @_course.Name </PageTitle >
Original file line number Diff line number Diff line change 77@inject CrudSnackbarService SnackbarService
88@inject SubjectService SubjectService
99@inject StudentClient StudentClient
10+ @attribute [Authorize(Policy = Policy.RequireTeacher)]
1011
1112<PageTitle >Students</PageTitle >
1213
Original file line number Diff line number Diff line change 66@inject SubjectService SubjectService
77@inject SubjectClient SubjectClient
88
9+ @attribute [Authorize(Policy = Policy.RequireTeacher)]
10+
911<PageTitle >Subjects</PageTitle >
1012
1113<MudText Typo =" Typo.h4" Class =" mt-4" >Subjects</MudText >
Original file line number Diff line number Diff line change 88@inject SubjectService SubjectService
99@inject SubjectClient SubjectClient
1010@inject UserClient UserClient
11+ @attribute [Authorize(Policy = Policy.RequireTeacher)]
1112
1213<PageTitle >Teachers</PageTitle >
1314
Original file line number Diff line number Diff line change 1+ using GradeManagement . Client . Network ;
2+
3+ using Microsoft . AspNetCore . Authorization ;
4+
5+ namespace GradeManagement . Client . Policies ;
6+
7+ public class UserTypeAuthorizationHandler ( UserClient userClient ) : AuthorizationHandler < UserTypeRequirement >
8+ {
9+ protected override async Task HandleRequirementAsync (
10+ AuthorizationHandlerContext context ,
11+ UserTypeRequirement requirement )
12+ {
13+ var user = await userClient . GetCurrentUserAsync ( ) ;
14+
15+ if ( requirement . Type . Contains ( user . Type ) )
16+ {
17+ context . Succeed ( requirement ) ;
18+ }
19+ }
20+ }
You can’t perform that action at this time.
0 commit comments