Added permissions to users controller and the client.

This commit is contained in:
Masu-Baumgartner
2024-10-07 16:37:18 +02:00
parent bb29177e41
commit 19afc5d055
11 changed files with 101 additions and 19 deletions

View File

@@ -3,6 +3,7 @@ using MoonCore.Exceptions;
using MoonCore.Extended.Abstractions;
using MoonCore.Extended.Helpers;
using MoonCore.Models;
using Moonlight.ApiServer.Attributes;
using Moonlight.ApiServer.Database.Entities;
using Moonlight.Shared.Http.Requests.Admin.Users;
using Moonlight.Shared.Http.Responses.Admin.Users;
@@ -23,14 +24,17 @@ public class UsersController : Controller
}
[HttpGet]
[RequirePermission("admin.users.read")]
public async Task<IPagedData<UserDetailResponse>> Get([FromQuery] int page, [FromQuery] int pageSize = 50)
=> await CrudHelper.Get(page, pageSize);
[HttpGet("{id}")]
[RequirePermission("admin.users.read")]
public async Task<UserDetailResponse> GetSingle(int id)
=> await CrudHelper.GetSingle(id);
[HttpPost]
[RequirePermission("admin.users.create")]
public async Task<UserDetailResponse> Create([FromBody] CreateUserRequest request)
{
// Reformat values
@@ -50,6 +54,7 @@ public class UsersController : Controller
}
[HttpPatch("{id}")]
[RequirePermission("admin.users.update")]
public async Task<UserDetailResponse> Update([FromRoute] int id, [FromBody] UpdateUserRequest request)
{
var user = await CrudHelper.GetSingleModel(id);
@@ -76,6 +81,7 @@ public class UsersController : Controller
}
[HttpDelete("{id}")]
[RequirePermission("admin.users.delete")]
public async Task Delete([FromRoute] int id)
=> await CrudHelper.Delete(id);
}

View File

@@ -86,6 +86,8 @@ public class AuthorizationMiddleware
detail: permission,
statusCode: 403
).ExecuteAsync(context);
return false;
}
}

View File

@@ -13,11 +13,12 @@
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="MoonCore" Version="1.5.8" />
<PackageReference Include="MoonCore.Extended" Version="1.0.6" />
<PackageReference Include="MoonCore.Extended" Version="1.0.7" />
<PackageReference Include="MoonCore.PluginFramework" Version="1.0.0" />
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="8.0.2" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0"/>
<PackageReference Include="Ben.Demystifier" Version="0.4.1" />
<PackageReference Include="MoonCore.Blazor.Tailwind" Version="1.0.5" />
</ItemGroup>
<ItemGroup>