Edit languages to set default.

This commit is contained in:
Ricardo Pacheco
2023-12-07 18:12:49 -06:00
parent 1d230bd4aa
commit 422bf7b689
9 changed files with 328 additions and 9 deletions

View File

@ -1,5 +1,8 @@
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Net;
using System.Reflection;
using Microsoft.AspNetCore.Authorization;
@ -9,9 +12,6 @@ using Oqtane.Infrastructure;
using Oqtane.Models;
using Oqtane.Repository;
using Oqtane.Shared;
using System.Linq;
using System.Diagnostics;
using System.Globalization;
namespace Oqtane.Controllers
{
@ -102,6 +102,24 @@ namespace Oqtane.Controllers
}
}
[HttpPut]
[Authorize(Roles = RoleNames.Admin)]
public void Put([FromBody] Language language)
{
if (ModelState.IsValid && language.SiteId == _alias.SiteId)
{
_languages.UpdateLanguage(language);
_syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Language, language.LanguageId, SyncEventActions.Update);
_syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Site, _alias.SiteId, SyncEventActions.Refresh);
_logger.Log(LogLevel.Information, this, LogFunction.Create, "Language Updated {Language}", language);
}
else
{
_logger.Log(LogLevel.Error, this, LogFunction.Security, "Unauthorized Language Put Attempt {Language}", language);
HttpContext.Response.StatusCode = (int)HttpStatusCode.Forbidden;
}
}
[HttpPost]
[Authorize(Roles = RoleNames.Admin)]
public Language Post([FromBody] Language language)

View File

@ -9,6 +9,8 @@ namespace Oqtane.Repository
Language AddLanguage(Language language);
void UpdateLanguage(Language language);
Language GetLanguage(int languageId);
void DeleteLanguage(int languageId);

View File

@ -1,5 +1,6 @@
using System.Collections.Generic;
using System.Linq;
using Microsoft.EntityFrameworkCore;
using Oqtane.Models;
namespace Oqtane.Repository
@ -12,7 +13,7 @@ namespace Oqtane.Repository
{
_db = context;
}
public IEnumerable<Language> GetLanguages(int siteId)
{
return _db.Language.Where(l => l.SiteId == siteId);
@ -35,6 +36,25 @@ namespace Oqtane.Repository
return language;
}
public void UpdateLanguage(Language language)
{
if (language.LanguageId != 0)
{
_db.Entry(language).State = EntityState.Modified;
}
if (language.IsDefault)
{
// Ensure all other languages are not set to default
_db.Language
.Where(l => l.SiteId == language.SiteId &&
l.LanguageId != language.LanguageId)
.ToList()
.ForEach(l => l.IsDefault = false);
}
_db.SaveChanges();
}
public Language GetLanguage(int languageId)
{
return _db.Language.Find(languageId);