♻️ No idea, but errors all gone

This commit is contained in:
2025-07-08 23:55:31 +08:00
parent 2c67472894
commit 63b2b989ba
74 changed files with 1551 additions and 1100 deletions

View File

@@ -1,6 +1,7 @@
using System.ComponentModel.DataAnnotations;
using DysonNetwork.Shared.Models;
using DysonNetwork.Sphere.Permission;
using DysonNetwork.Shared.Permission;
using DysonNetwork.Shared.Services;
using DysonNetwork.Sphere.Realm;
using DysonNetwork.Sphere.Storage;
using Microsoft.AspNetCore.Authorization;
@@ -16,7 +17,9 @@ public class PublisherController(
AppDatabase db,
PublisherService ps,
FileReferenceService fileRefService,
DysonNetwork.Shared.Services.IActionLogService als)
IAccountService accounts,
IActionLogService als
)
: ControllerBase
{
[HttpGet("{name}")]
@@ -28,10 +31,7 @@ public class PublisherController(
if (publisher is null) return NotFound();
if (publisher.AccountId is null) return Ok(publisher);
var account = await db.Accounts
.Where(a => a.Id == publisher.AccountId)
.Include(a => a.Profile)
.FirstOrDefaultAsync();
var account = await accounts.GetAccountById(publisher.AccountId.Value, true);
publisher.Account = account;
return Ok(publisher);
@@ -79,7 +79,7 @@ public class PublisherController(
public class PublisherMemberRequest
{
[Required] public long RelatedUserId { get; set; }
[Required] public Guid RelatedUserId { get; set; }
[Required] public PublisherMemberRole Role { get; set; }
}
@@ -91,7 +91,7 @@ public class PublisherController(
if (HttpContext.Items["CurrentUser"] is not Shared.Models.Account currentUser) return Unauthorized();
var userId = currentUser.Id;
var relatedUser = await db.Accounts.FindAsync(request.RelatedUserId);
var relatedUser = await accounts.GetAccountById(request.RelatedUserId);
if (relatedUser is null) return BadRequest("Related user was not found");
var publisher = await db.Publishers
@@ -112,13 +112,16 @@ public class PublisherController(
db.PublisherMembers.Add(newMember);
await db.SaveChangesAsync();
als.CreateActionLogFromRequest(
await als.CreateActionLogFromRequest(
ActionLogType.PublisherMemberInvite,
new Dictionary<string, object>
{
{ "publisher_id", publisher.Id },
{ "account_id", relatedUser.Id }
}, Request
},
Request.HttpContext.Connection.RemoteIpAddress?.ToString(),
Request.Headers.UserAgent.ToString(),
currentUser
);
return Ok(newMember);
@@ -142,9 +145,12 @@ public class PublisherController(
db.Update(member);
await db.SaveChangesAsync();
als.CreateActionLogFromRequest(
await als.CreateActionLogFromRequest(
ActionLogType.PublisherMemberJoin,
new Dictionary<string, object> { { "account_id", member.AccountId } }, Request
new Dictionary<string, object> { { "account_id", member.AccountId } },
Request.HttpContext.Connection.RemoteIpAddress?.ToString(),
Request.Headers.UserAgent.ToString(),
currentUser
);
return Ok(member);
@@ -167,9 +173,12 @@ public class PublisherController(
db.PublisherMembers.Remove(member);
await db.SaveChangesAsync();
als.CreateActionLogFromRequest(
await als.CreateActionLogFromRequest(
ActionLogType.PublisherMemberLeave,
new Dictionary<string, object> { { "account_id", member.AccountId } }, Request
new Dictionary<string, object> { { "account_id", member.AccountId } },
Request.HttpContext.Connection.RemoteIpAddress?.ToString(),
Request.Headers.UserAgent.ToString(),
currentUser
);
return NoContent();
@@ -197,13 +206,16 @@ public class PublisherController(
db.PublisherMembers.Remove(member);
await db.SaveChangesAsync();
als.CreateActionLogFromRequest(
await als.CreateActionLogFromRequest(
ActionLogType.PublisherMemberKick,
new Dictionary<string, object>
{
{ "publisher_id", publisher.Id },
{ "account_id", memberId }
}, Request
},
Request.HttpContext.Connection.RemoteIpAddress?.ToString(),
Request.Headers.UserAgent.ToString(),
currentUser
);
return NoContent();
@@ -221,8 +233,9 @@ public class PublisherController(
[HttpPost("individual")]
[Authorize]
[RequiredPermission("global", "publishers.create")]
public async Task<ActionResult<Shared.Models.Publisher>> CreatePublisherIndividual([FromBody] PublisherRequest request)
[DysonNetwork.Shared.Permission.RequiredPermission("global", "publishers.create")]
public async Task<ActionResult<Shared.Models.Publisher>> CreatePublisherIndividual(
[FromBody] PublisherRequest request)
{
if (HttpContext.Items["CurrentUser"] is not Shared.Models.Account currentUser) return Unauthorized();
@@ -260,9 +273,12 @@ public class PublisherController(
background
);
als.CreateActionLogFromRequest(
await als.CreateActionLogFromRequest(
ActionLogType.PublisherCreate,
new Dictionary<string, object> { { "publisher_id", publisher.Id } }, Request
new Dictionary<string, object> { { "publisher_id", publisher.Id } },
Request.HttpContext.Connection.RemoteIpAddress?.ToString(),
Request.Headers.UserAgent.ToString(),
currentUser
);
return Ok(publisher);
@@ -270,7 +286,7 @@ public class PublisherController(
[HttpPost("organization/{realmSlug}")]
[Authorize]
[RequiredPermission("global", "publishers.create")]
[DysonNetwork.Shared.Permission.RequiredPermission("global", "publishers.create")]
public async Task<ActionResult<Shared.Models.Publisher>> CreatePublisherOrganization(string realmSlug,
[FromBody] PublisherRequest request)
{
@@ -315,9 +331,12 @@ public class PublisherController(
background
);
als.CreateActionLogFromRequest(
await als.CreateActionLogFromRequest(
ActionLogType.PublisherCreate,
new Dictionary<string, object> { { "publisher_id", publisher.Id } }, Request
new Dictionary<string, object> { { "publisher_id", publisher.Id } },
Request.HttpContext.Connection.RemoteIpAddress?.ToString(),
Request.Headers.UserAgent.ToString(),
currentUser
);
return Ok(publisher);
@@ -393,9 +412,12 @@ public class PublisherController(
db.Update(publisher);
await db.SaveChangesAsync();
als.CreateActionLogFromRequest(
await als.CreateActionLogFromRequest(
ActionLogType.PublisherUpdate,
new Dictionary<string, object> { { "publisher_id", publisher.Id } }, Request
new Dictionary<string, object> { { "publisher_id", publisher.Id } },
Request.HttpContext.Connection.RemoteIpAddress?.ToString(),
Request.Headers.UserAgent.ToString(),
currentUser
);
return Ok(publisher);
@@ -431,9 +453,12 @@ public class PublisherController(
db.Publishers.Remove(publisher);
await db.SaveChangesAsync();
als.CreateActionLogFromRequest(
await als.CreateActionLogFromRequest(
ActionLogType.PublisherDelete,
new Dictionary<string, object> { { "publisher_id", publisher.Id } }, Request
new Dictionary<string, object> { { "publisher_id", publisher.Id } },
Request.HttpContext.Connection.RemoteIpAddress?.ToString(),
Request.Headers.UserAgent.ToString(),
currentUser
);
return NoContent();
@@ -530,7 +555,7 @@ public class PublisherController(
[HttpPost("{name}/features")]
[Authorize]
[RequiredPermissionAttribute("maintenance", "publishers.features")]
[DysonNetwork.Shared.Permission.RequiredPermission("maintenance", "publishers.features")]
public async Task<ActionResult<PublisherFeature>> AddPublisherFeature(string name,
[FromBody] PublisherFeatureRequest request)
{
@@ -554,7 +579,7 @@ public class PublisherController(
[HttpDelete("{name}/features/{flag}")]
[Authorize]
[RequiredPermissionAttribute("maintenance", "publishers.features")]
[RequiredPermission("maintenance", "publishers.features")]
public async Task<ActionResult> RemovePublisherFeature(string name, string flag)
{
var publisher = await db.Publishers