mirror of
https://github.com/D4M13N-D3V/art_platform.git
synced 2025-03-14 07:44:54 +00:00
added suspended and ban checks
This commit is contained in:
parent
82f24497b0
commit
ffbc57aded
@ -111,6 +111,9 @@ public class OrderController : Controller
|
||||
.FirstOrDefaultAsync(x=>x.Id==sellerId);
|
||||
if(seller==null)
|
||||
return NotFound("Seller not found.");
|
||||
if(seller.Suspended)
|
||||
return NotFound("Seller is suspended.");
|
||||
|
||||
var service = await _dbContext.SellerServices
|
||||
.Include(x=>x.Reviews)
|
||||
.FirstOrDefaultAsync(x=>x.Id==serviceId);
|
||||
|
@ -33,6 +33,7 @@ public class SellerOrderController : Controller
|
||||
.Include(x=>x.Seller)
|
||||
.Where(x => x.Seller.UserId == userId && status==null ? true : status==x.Status)
|
||||
.Skip(offset).Take(pageSize).ToListAsync();
|
||||
|
||||
var result = orders.Select(x => x.ToModel()).ToList();
|
||||
return Ok(result);
|
||||
}
|
||||
@ -55,6 +56,11 @@ public class SellerOrderController : Controller
|
||||
public async Task<IActionResult> CancelOrder(int orderId)
|
||||
{
|
||||
var userId = User.GetUserId();
|
||||
var seller = await _dbContext.UserSellerProfiles.FirstOrDefaultAsync(x=>x.UserId==userId);
|
||||
if(seller==null)
|
||||
return NotFound("User it not a seller.");
|
||||
if(seller.Suspended)
|
||||
return BadRequest("Seller is suspended.");
|
||||
var order = await _dbContext.SellerServiceOrders
|
||||
.Include(x=>x.SellerService)
|
||||
.FirstOrDefaultAsync(x=>x.Id==orderId && x.Seller.UserId==userId);
|
||||
@ -80,6 +86,11 @@ public class SellerOrderController : Controller
|
||||
public async Task<IActionResult> AcceptOrder(int orderId)
|
||||
{
|
||||
var userId = User.GetUserId();
|
||||
var seller = await _dbContext.UserSellerProfiles.FirstOrDefaultAsync(x=>x.UserId==userId);
|
||||
if(seller==null)
|
||||
return NotFound("User it not a seller.");
|
||||
if(seller.Suspended)
|
||||
return BadRequest("Seller is suspended.");
|
||||
var order = await _dbContext.SellerServiceOrders
|
||||
.Include(x=>x.SellerService)
|
||||
.FirstOrDefaultAsync(x=>x.Id==orderId && x.Seller.UserId==userId);
|
||||
@ -104,6 +115,11 @@ public class SellerOrderController : Controller
|
||||
public async Task<IActionResult> StartOrder(int orderId)
|
||||
{
|
||||
var userId = User.GetUserId();
|
||||
var seller = await _dbContext.UserSellerProfiles.FirstOrDefaultAsync(x=>x.UserId==userId);
|
||||
if(seller==null)
|
||||
return NotFound("User it not a seller.");
|
||||
if(seller.Suspended)
|
||||
return BadRequest("Seller is suspended.");
|
||||
var order = await _dbContext.SellerServiceOrders
|
||||
.Include(x=>x.SellerService)
|
||||
.FirstOrDefaultAsync(x=>x.Id==orderId && x.Seller.UserId==userId);
|
||||
@ -128,6 +144,12 @@ public class SellerOrderController : Controller
|
||||
public async Task<IActionResult> AdjustPrice(int orderId,[FromQuery]double price)
|
||||
{
|
||||
var userId = User.GetUserId();
|
||||
var seller = await _dbContext.UserSellerProfiles.FirstOrDefaultAsync(x=>x.UserId==userId);
|
||||
if(seller==null)
|
||||
return NotFound("User it not a seller.");
|
||||
if(seller.Suspended)
|
||||
return BadRequest("Seller is suspended.");
|
||||
|
||||
var order = await _dbContext.SellerServiceOrders
|
||||
.Include(x=>x.Seller)
|
||||
.Include(x=>x.SellerService)
|
||||
@ -159,6 +181,11 @@ public class SellerOrderController : Controller
|
||||
.Include(x=>x.Seller)
|
||||
.Include(x=>x.SellerService)
|
||||
.FirstOrDefaultAsync(x=>x.Id==orderId && x.Seller.UserId==userId);
|
||||
var seller = await _dbContext.UserSellerProfiles.FirstOrDefaultAsync(x=>x.UserId==userId);
|
||||
if(seller==null)
|
||||
return NotFound("User it not a seller.");
|
||||
if(seller.Suspended)
|
||||
return BadRequest("Seller is suspended.");
|
||||
if(order==null)
|
||||
return NotFound("Order not found.");
|
||||
if(order.Seller.UserId!=userId)
|
||||
@ -185,6 +212,11 @@ public class SellerOrderController : Controller
|
||||
var order = await _dbContext.SellerServiceOrders
|
||||
.Include(x=>x.Seller)
|
||||
.FirstOrDefaultAsync(x=>x.Id==orderId && x.Seller.UserId==userId);
|
||||
var seller = await _dbContext.UserSellerProfiles.FirstOrDefaultAsync(x=>x.UserId==userId);
|
||||
if(seller==null)
|
||||
return NotFound("User it not a seller.");
|
||||
if(seller.Suspended)
|
||||
return BadRequest("Seller is suspended.");
|
||||
if(order==null)
|
||||
return NotFound("Order not found.");
|
||||
if(order.BuyerId!=userId && order.Seller.UserId!=userId)
|
||||
@ -204,6 +236,11 @@ public class SellerOrderController : Controller
|
||||
public async Task<IActionResult> Message(int orderId, [FromBody] SellerServiceOrderMessageModel model)
|
||||
{
|
||||
var userId = User.GetUserId();
|
||||
var seller = await _dbContext.UserSellerProfiles.FirstOrDefaultAsync(x=>x.UserId==userId);
|
||||
if(seller==null)
|
||||
return NotFound("User it not a seller.");
|
||||
if(seller.Suspended)
|
||||
return BadRequest("Seller is suspended.");
|
||||
var order = await _dbContext.SellerServiceOrders
|
||||
.Include(x=>x.Messages)
|
||||
.Include(x=>x.Seller)
|
||||
@ -236,6 +273,11 @@ public class SellerOrderController : Controller
|
||||
public async Task<IActionResult> MessageAttachment(int orderId, int messageId,IFormFile file)
|
||||
{
|
||||
var userId = User.GetUserId();
|
||||
var seller = await _dbContext.UserSellerProfiles.FirstOrDefaultAsync(x=>x.UserId==userId);
|
||||
if(seller==null)
|
||||
return NotFound("User it not a seller.");
|
||||
if(seller.Suspended)
|
||||
return BadRequest("Seller is suspended.");
|
||||
var order = await _dbContext.SellerServiceOrders
|
||||
.Include(x=>x.Messages)
|
||||
.Include(x=>x.Seller)
|
||||
@ -270,6 +312,11 @@ public class SellerOrderController : Controller
|
||||
public async Task<IActionResult> MessageAttachments(int orderId, int messageId)
|
||||
{
|
||||
var userId = User.GetUserId();
|
||||
var seller = await _dbContext.UserSellerProfiles.FirstOrDefaultAsync(x=>x.UserId==userId);
|
||||
if(seller==null)
|
||||
return NotFound("User it not a seller.");
|
||||
if(seller.Suspended)
|
||||
return BadRequest("Seller is suspended.");
|
||||
var order = await _dbContext.SellerServiceOrders
|
||||
.Include(x=>x.Messages)
|
||||
.Include(x=>x.Seller)
|
||||
|
@ -104,6 +104,8 @@ public class SellerProfileController : Controller
|
||||
return BadRequest("Account has requested to be a seller and not been approved yet.");
|
||||
return Unauthorized("Account is not a seller.");
|
||||
}
|
||||
if(existingSellerProfile.Suspended)
|
||||
return BadRequest("Seller is suspended.");
|
||||
|
||||
var portfolio = await _dbContext.SellerProfilePortfolioPieces
|
||||
.FirstAsync(x => x.SellerProfileId == existingSellerProfile.Id && x.Id==portfolioId);
|
||||
@ -125,6 +127,8 @@ public class SellerProfileController : Controller
|
||||
return BadRequest("Account has requested to be a seller and not been approved yet.");
|
||||
return Unauthorized("Account is not a seller.");
|
||||
}
|
||||
if(existingSellerProfile.Suspended)
|
||||
return BadRequest("Seller is suspended.");
|
||||
var portfolio = await _dbContext.SellerProfilePortfolioPieces.Where(x=>x.SellerProfileId==existingSellerProfile.Id).ToListAsync();
|
||||
var result = portfolio.Select(x=>x.ToModel()).ToList();
|
||||
return Ok(result);
|
||||
@ -145,6 +149,8 @@ public class SellerProfileController : Controller
|
||||
return Unauthorized("Account is not a seller.");
|
||||
}
|
||||
|
||||
if(existingSellerProfile.Suspended)
|
||||
return BadRequest("Seller is suspended.");
|
||||
var url = await _storageService.UploadImageAsync(file, Guid.NewGuid().ToString());
|
||||
var portfolio = new SellerProfilePortfolioPiece()
|
||||
{
|
||||
@ -172,6 +178,8 @@ public class SellerProfileController : Controller
|
||||
return BadRequest("Account has requested to be a seller and not been approved yet.");
|
||||
return Unauthorized("Account is not a seller.");
|
||||
}
|
||||
if(existingSellerProfile.Suspended)
|
||||
return BadRequest("Seller is suspended.");
|
||||
var portfolio = await _dbContext.SellerProfilePortfolioPieces.FirstOrDefaultAsync(x=>x.Id==portfolioId);
|
||||
if(portfolio==null)
|
||||
return NotFound("Portfolio piece not found.");
|
||||
@ -197,6 +205,8 @@ public class SellerProfileController : Controller
|
||||
return Unauthorized("Account is not a seller.");
|
||||
}
|
||||
|
||||
if(existingSellerProfile.Suspended)
|
||||
return BadRequest("Seller is suspended.");
|
||||
if(existingSellerProfile.StripeAccountId!=null)
|
||||
return BadRequest("Account already have a payment account.");
|
||||
|
||||
@ -222,6 +232,8 @@ public class SellerProfileController : Controller
|
||||
return BadRequest("Account has requested to be a seller and not been approved yet.");
|
||||
return Unauthorized("Account is not a seller.");
|
||||
}
|
||||
if(existingSellerProfile.Suspended)
|
||||
return BadRequest("Seller is suspended.");
|
||||
if(existingSellerProfile.StripeAccountId==null)
|
||||
return BadRequest("Account does not have a payment account.");
|
||||
|
||||
|
@ -36,6 +36,9 @@ public class SellerServiceController : Controller
|
||||
if(seller==null)
|
||||
return BadRequest("Account is not a seller.");
|
||||
|
||||
if(seller.Suspended)
|
||||
return BadRequest("Seller is suspended.");
|
||||
|
||||
var sellerServices = await _dbContext.SellerServices.Where(x=>x.Archived==false).Include(x=>x.Reviews)
|
||||
.Skip(offset).Take(pageSize).ToListAsync();
|
||||
var result = sellerServices.Select(x=>x.ToModel()).ToList();
|
||||
@ -53,6 +56,9 @@ public class SellerServiceController : Controller
|
||||
if(seller==null)
|
||||
return BadRequest("Account is not a seller.");
|
||||
|
||||
if(seller.Suspended)
|
||||
return BadRequest("Seller is suspended.");
|
||||
|
||||
var sellerServices = await _dbContext.SellerServices.Where(x=>x.Archived==false).Include(x => x.Reviews).ToListAsync();
|
||||
var result = sellerServices.Count;
|
||||
return Ok(result);
|
||||
@ -68,6 +74,9 @@ public class SellerServiceController : Controller
|
||||
if(seller==null)
|
||||
return BadRequest("Account is not a seller.");
|
||||
|
||||
if(seller.Suspended)
|
||||
return BadRequest("Seller is suspended.");
|
||||
|
||||
if(seller.StripeAccountId==null)
|
||||
return BadRequest("Account does not have a payment account.");
|
||||
|
||||
@ -98,6 +107,9 @@ public class SellerServiceController : Controller
|
||||
if(seller==null)
|
||||
return BadRequest("Account is not a seller.");
|
||||
|
||||
if(seller.Suspended)
|
||||
return BadRequest("Seller is suspended.");
|
||||
|
||||
var sellerService = await _dbContext.SellerServices.FirstOrDefaultAsync(sellerService=>sellerService.Id==sellerServiceId);
|
||||
|
||||
if(sellerService==null)
|
||||
@ -124,6 +136,9 @@ public class SellerServiceController : Controller
|
||||
if(seller==null)
|
||||
return BadRequest("Account is not a seller.");
|
||||
|
||||
if(seller.Suspended)
|
||||
return BadRequest("Seller is suspended.");
|
||||
|
||||
var sellerService = await _dbContext.SellerServices.FirstOrDefaultAsync(sellerService=>sellerService.Id==sellerServiceId);
|
||||
|
||||
if(sellerService==null)
|
||||
@ -141,6 +156,8 @@ public class SellerServiceController : Controller
|
||||
{
|
||||
var userId = User.GetUserId();
|
||||
var existingSellerProfile = await _dbContext.UserSellerProfiles.FirstOrDefaultAsync(sellerProfile=>sellerProfile.UserId==userId);
|
||||
|
||||
|
||||
if (existingSellerProfile == null)
|
||||
{
|
||||
var sellerProfileRequest = await _dbContext.SellerProfileRequests.FirstOrDefaultAsync(request=>request.UserId==userId && request.Accepted==false);
|
||||
@ -148,6 +165,8 @@ public class SellerServiceController : Controller
|
||||
return BadRequest("Account has requested to be a seller and not been approved yet.");
|
||||
return Unauthorized("Account is not a seller.");
|
||||
}
|
||||
if(existingSellerProfile.Suspended)
|
||||
return BadRequest("Seller is suspended.");
|
||||
var portfolio = await _dbContext.SellerProfilePortfolioPieces.Where(x=>x.SellerProfileId==existingSellerProfile.Id && x.SellerServiceId==sellerServiceId).ToListAsync();
|
||||
var result = portfolio.Select(x=>x.ToModel()).ToList();
|
||||
return Ok(result);
|
||||
@ -169,6 +188,9 @@ public class SellerServiceController : Controller
|
||||
return Unauthorized("Account is not a seller.");
|
||||
}
|
||||
|
||||
if(existingSellerProfile.Suspended)
|
||||
return BadRequest("Seller is suspended.");
|
||||
|
||||
var portfolio = await _dbContext.SellerProfilePortfolioPieces
|
||||
.FirstAsync(x => x.SellerProfileId == existingSellerProfile.Id
|
||||
&& x.SellerServiceId == sellerServiceId && x.Id==portfolioId);
|
||||
@ -191,6 +213,9 @@ public class SellerServiceController : Controller
|
||||
return Unauthorized("Account is not a seller.");
|
||||
}
|
||||
|
||||
if(existingSellerProfile.Suspended)
|
||||
return BadRequest("Seller is suspended.");
|
||||
|
||||
var url = await _storageService.UploadImageAsync(file, Guid.NewGuid().ToString());
|
||||
var portfolio = new SellerProfilePortfolioPiece()
|
||||
{
|
||||
@ -219,6 +244,8 @@ public class SellerServiceController : Controller
|
||||
return BadRequest("Account has requested to be a seller and not been approved yet.");
|
||||
return Unauthorized("Account is not a seller.");
|
||||
}
|
||||
if(existingSellerProfile.Suspended)
|
||||
return BadRequest("Seller is suspended.");
|
||||
var portfolio = await _dbContext.SellerProfilePortfolioPieces.FirstOrDefaultAsync(x=>x.Id==portfolioId);
|
||||
if(portfolio==null)
|
||||
return NotFound("Portfolio piece not found.");
|
||||
|
@ -2,6 +2,7 @@ using System.Security.Claims;
|
||||
using ArtPlatform.API.Services.Payment;
|
||||
using ArtPlatform.Database;
|
||||
using ArtPlatform.Database.Entities;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace ArtPlatform.API.Middleware;
|
||||
|
||||
@ -21,7 +22,7 @@ public class UserMiddleware
|
||||
{
|
||||
var userId = context.User.Claims.First(c => c.Type == ClaimTypes.NameIdentifier).Value;
|
||||
|
||||
var user = await dbContext.Users.FindAsync(userId);
|
||||
var user = await dbContext.Users.Include(x=>x.UserSellerProfile).FirstOrDefaultAsync(x=>x.Id==userId);
|
||||
|
||||
if (user == null)
|
||||
{
|
||||
@ -39,7 +40,73 @@ public class UserMiddleware
|
||||
{
|
||||
user.Email= context.User.Claims.FirstOrDefault(x=>x.Type==ClaimTypes.Email)?.Value ?? string.Empty;
|
||||
dbContext.Users.Update(user);
|
||||
await dbContext.SaveChangesAsync();
|
||||
await dbContext.SaveChangesAsync();
|
||||
}
|
||||
|
||||
if (user.Suspended)
|
||||
{
|
||||
if (user.UnsuspendDate < DateTime.UtcNow)
|
||||
{
|
||||
user.Suspended = false;
|
||||
user.SuspendedDate = null;
|
||||
user.UnsuspendDate = null;
|
||||
user.SuspendedReason = null;
|
||||
user.SuspendAdminId = null;
|
||||
dbContext.Users.Update(user);
|
||||
await dbContext.SaveChangesAsync();
|
||||
}
|
||||
else
|
||||
{
|
||||
var suspendDate = user.SuspendedDate.Value.ToString("MM/dd/yyyy");
|
||||
var unsuspendDate = user.UnsuspendDate.Value.ToString("MM/dd/yyyy");
|
||||
await context.Response.WriteAsync($"Suspended on {suspendDate} until {unsuspendDate} for {user.SuspendedReason} by {user.SuspendAdminId}.");
|
||||
context.Response.StatusCode = StatusCodes.Status403Forbidden;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (user.Banned)
|
||||
{
|
||||
if (user.UnsuspendDate < DateTime.UtcNow)
|
||||
{
|
||||
user.Banned = false;
|
||||
user.BannedDate = null;
|
||||
user.BannedDate = null;
|
||||
user.BannedReason = null;
|
||||
user.BanAdminId = null;
|
||||
dbContext.Users.Update(user);
|
||||
await dbContext.SaveChangesAsync();
|
||||
}
|
||||
else
|
||||
{
|
||||
var suspendDate = user.BannedDate.Value.ToString("MM/dd/yyyy");
|
||||
var unsuspendDate = user.UnbanDate.Value.ToString("MM/dd/yyyy");
|
||||
await context.Response.WriteAsync($"Banned on {suspendDate} until {unsuspendDate} for {user.BannedReason} by {user.BanAdminId}.");
|
||||
context.Response.StatusCode = StatusCodes.Status403Forbidden;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (user.UserSellerProfile != null && user.UserSellerProfile.Suspended)
|
||||
{
|
||||
if (user.UserSellerProfile.UnsuspendDate < DateTime.UtcNow)
|
||||
{
|
||||
user.UserSellerProfile.Suspended = false;
|
||||
user.UserSellerProfile.SuspendedDate = null;
|
||||
user.UserSellerProfile.UnsuspendDate = null;
|
||||
user.UserSellerProfile.SuspendedReason = null;
|
||||
user.UserSellerProfile.SuspendAdminId = null;
|
||||
dbContext.Users.Update(user);
|
||||
await dbContext.SaveChangesAsync();
|
||||
}
|
||||
else
|
||||
{
|
||||
var suspendDate = user.UserSellerProfile.SuspendedDate.Value.ToString("MM/dd/yyyy");
|
||||
var unsuspendDate = user.UserSellerProfile.UnsuspendDate.Value.ToString("MM/dd/yyyy");
|
||||
await context.Response.WriteAsync($"Banned on {suspendDate} until {unsuspendDate} for {user.UserSellerProfile.SuspendedReason} by {user.UserSellerProfile.SuspendAdminId}.");
|
||||
context.Response.StatusCode = StatusCodes.Status403Forbidden;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user